f.submit表单按钮上的骆驼案例标签

时间:2016-09-08 15:46:49

标签: ruby-on-rails ruby simple-form

我有一个非常标准的Rails应用程序,其标准格式如下:

<%= simple_form_for @foo_bar do |f| %>
  <%= f.input :some_fields %>  
  <%= f.submit %>
<% end %>

按预期工作,但按钮上的标签最终

<input type="submit" name="commit" value="Update Foo bar">

<input type="submit" name="commit" value="Create Foo bar">

我遇到的问题是'Foo bar'。我知道这是一个驼峰案例模型类名称问题。我也知道我可以这样做:

<input type="submit" name="commit" value="<%= action_name == 'new' ? 'Create' : 'Update' %> Foo">

<%= f.submit "#{action_name == 'new' ? 'Create' : 'Update'} Foo Bar" %>

但只是想知道我是否有一种更优雅的方法?

2 个答案:

答案 0 :(得分:1)

使用此表单渲染部分时,您可以发送参数。

<强> new.html.erb

<%= render 'form', button: 'Create'  %>

<强> edit.html.erb

<%= render 'form', button: 'Update' %>

<强> _form.htm.erb

<%= simple_form_for @foo_bar do |f| %>
  <%= f.input :some_fields %>  
  <%= f.submit "#{button} Foo Bar" %>
<% end %>

答案 1 :(得分:1)

我遇到了同样的问题,而且比你想象的要容易得多;

对于f.submit按钮,您可以这样做:

  <%= f.submit "Create Foo Bar" %>

或者你可以试试这个:

<%= f.submit "create foo bar".titleize %>

对于您可以执行的标记:

<%= f.label :create_foo_bar, "Create Foo Bar" %>

第一个论点并不像大多数人想的那样是标题。 Rails期望第一个参数是对象名称,因此如果你不传递带有真实标题的第二个参数(选项),它会自动使它成为标题。

相关问题