Digamos que tengo un modelo de Artículo, y en la vista del artículo 'nuevo' tengo dos botones, "Publicar" y "Guardar Borrador".Rieles: botones de envío múltiple en un formulario
Mi pregunta es cómo puedo saber en qué botón se hace clic en el controlador.
Ya tengo una solución, pero creo que debe haber una manera mejor. Lo que actualmente se utilizan en la vista es:
<div class="actions">
<%= f.submit "Publish" %>
<%= f.submit "Save Draft", :name => "commit" %>
</div>
Así que en el controlador, puedo usar los params [: comprometerse] cadena de manejar esa acción.
def create
@article = Article.new(params[:article])
if params[:commit] == "Publish"
@article.status = 'publish'
// detail omitted
end
@article.save
end
Pero creo que utilizar la cadena relacionada con la vista no es buena. ¿Podrías decirme otra forma de lograr esto?
ACTUALIZACIÓN: Dado que estos botones están en la misma forma, todos van a la acción 'crear', y eso está bien para mí. Lo que quiero es manejar eso dentro de la acción de creación, como dar al modelo de artículo una columna de 'estado' y contener 'público' o 'borrador'.
posible duplicado de [¿Cómo se crean múltiples botones para presentar la misma forma en Rails?] (Http://stackoverflow.com/questions/3027149/how-do-i-create-multiple-submit- buttons-for-the-same-form-in-rails) –