tutorial software rails ejemplos descargar curso caracteristicas aprender ruby-on-rails

ruby on rails - software - button_to: action=> ''destroy'' busca ''show''



ruby on rails software (2)

Esto parece increíblemente similar a una pregunta que había respondido hace unos días, pero la solución no está funcionando ahora.

Estoy creando una aplicación de rieles, y estoy tratando de tener un botón para desencadenar un destructor en un controlador diferente.

El código que tengo para el botón es

<%= button_to "delete", :controller => :meals, :action => ''destroy'', :recipe_id => recipe.id, :method => :post >

cuando hago clic en el botón Eliminar, obtengo un mensaje "no coincide con las comidas / 3" que es el meal_id actual.

El destruir en el controlador de comidas se ve así

def destroy @meal = Meal.where("current_user.id => ? AND recipe_id => ?", current_user.id, params[:recipe_id]).first @meal.destroy respond_to do |format| format.html { redirect_to :controller => "user" , :action => "show" } format.xml { head :ok } end end

parece que button_to está ignorando completamente la: acción y solicitando un show que no existe y no debería existir.


Sé que es demasiado tarde para una respuesta, pero espero que pueda ayudar a alguien (utilizando Rails 4).

<%= button_to "delete", meal_path(:id => recipe.id), :method => :delete %>


¿Y cómo es parte de route.rb para eso? Porque si usa map.resources, destroy tiene la misma ruta que show pero :method => :delete (que es un verbo virtual implementado por form y _method = delete param).

Prueba esto:

<%= button_to "delete", {:controller => :meals, :action => ''destroy'', :id => recipe.id }, :method => :delete %>

o si la recipe es instancia de clase de Meal entonces

<%= button_to "delete", @recipe, :method => :delete %>

Cuidado con los corchetes.