Скажем, у меня есть модель статьи, и в статье "новый" вид у меня есть две кнопки: "Опубликовать" и "Сохранить черновик".
Мой вопрос: как узнать, какая кнопка нажата в контроллере.
У меня уже есть решение, но я думаю, что должен быть лучший способ. В настоящее время я использую в представлении:
<div class="actions">
<%= f.submit "Publish" %>
<%= f.submit "Save Draft", :name => "commit" %>
</div>
Итак, в контроллере я могу использовать строку params [: commit] для обработки этого действия.
def create
@article = Article.new(params[:article])
if params[:commit] == "Publish"
@article.status = 'publish'
// detail omitted
end
@article.save
end
Но я думаю, что использование строки, связанной с представлением, не очень хорошо. Не могли бы вы сказать мне еще один способ сделать это?
UPDATE. Поскольку эти кнопки находятся в одной и той же форме, все они идут в действие "create", и это нормально для меня. Я хочу обработать это в действии create, например, предоставить модели статьи столбец "статус" и удерживать "public" или "draft".