Rails form_with更改提交文本

时间:2017-12-06 05:05:16

标签: ruby-on-rails ruby-on-rails-5

我正在使用form_with帮助器创建一个新表单,如您所知,检测您是在新记录页面还是编辑页面上[[跟踪rails指南中的CRUD示例] [1],我渲染表单作为部分重用表单)根据我调用表单的位置更改提交按钮上的文本。

<%= form_with model: @article, local: true do |form| %>
   <p>
       <%= form.label :title %>
       <%= form.text_field :title %>
   </p>
   <p>
       <%= form.submit %>
   </p>
<% end %>

但是我想在表单上提交帮助文本用于翻译目的,但我不知道是否可以保留创建/更新识别功能,如果有一些助手或类我可以配置那些标签。

2 个答案:

答案 0 :(得分:2)

不要弄乱你的表格与条件。在辅助类中列出这些条件

  

form.rb

.. &lt;%= form.submit frm_action%&gt; ..

你的辅助方法就像这样

  

helper.rb

def frm_action
  if @article.id.present?
    "Create"
  else
    "Update"
  end
end

答案 1 :(得分:1)

我使用@article对象处理此问题!

当表单从create方法呈现时,@article中没有 ID ,否则从update方法中你必须传递 ID 为了更新它。

所以它会是:

<% if @article.id.present? %>
  <%= form.submit "Create" %>
<% else %>
  <%= form.submit "Update" %>
<% end %>