【发布时间】:2011-03-20 22:24:58
【问题描述】:
假设我有一个文章模型,在文章的“新建”视图中,我有两个按钮,“发布”和“保存草稿”。
我的问题是如何知道在控制器中单击了哪个按钮。
我已经有了解决方案,但我认为一定有更好的方法。 我目前在视图中使用的是:
<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
但我认为使用视图相关的字符串并不好。你能告诉我另一种方法吗?
更新:由于这些按钮的形式相同,它们都将执行“创建”操作,这对我来说没问题。我想要的是在创建操作中处理它,例如给文章模型一个“状态”列并保存“公共”或“草稿”。
【问题讨论】:
标签: ruby-on-rails forms action