当我在/edit 操作中时,我看到编辑按钮,但问题是如果表单验证中出现错误,它会呈现操作编辑并且我看到创建按钮。我该如何解决?
<%= form_for(@page) do |f| %>
<% if controller.action_name =="edit" %>
<%= f.submit "Update" %>
<% else %>
<%= f.submit "Create" %>
<% end %>
最佳答案
<% if ["edit", "update"].include? params[:action] %>
<%= f.submit "Update" %>
<% else %>
<%= f.submit "Create" %>
<% end %>
更好的解决方案是将您的表单提取为部分并将带有按钮名称的局部变量发送给它
您的
edit
看法:<%= render :partial => "form", :locals => { :button_label => "Edit" } %>
您的
create
看法:<%= render :partial => "form", :locals => { :button_label => "create" } %>
您的
_form
部分的:<%= form_for @object ... do |f| %>
...
<%= f.submit button_label %>
<% end %>
UPD
我认为@idlefinger 解决方案最适合您的问题
关于ruby-on-rails - 当前 Action 名称问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5403612/