simple_form标签为列值

时间:2013-04-13 18:19:54

标签: ruby-on-rails simple-form

我在rails中使用simple_form,并且我希望标签是来自另一个字段的值。在这种情况下,该字段不会被更改,因此我不想在表单上。

为了更好地解释,我有两行看起来像

<%= f.input :name, :label => false, :disabled => true, :input_html => { :class => 'input-small' } %>
<%= f.input :status, :collection => ["Not started", "Passed", "Failed"], :include_blank => false, :label => false %>

我想做的是将第一个元素作为第二个元素的标签。现在我可以让它们内联,但我希望它们与其他元素对齐,以便标签和输入排成一行。

这样做

<%= f.input :status, :collection => ["Not started", "Passed", "Failed"], :include_blank => false, :label => f.name %>

<%= f.input :status, :collection => ["Not started", "Passed", "Failed"], :include_blank => false, :label => {f.input :name, :label => false, :disabled => true} %>

有关如何解决这个问题的想法吗?

迈克尔

2 个答案:

答案 0 :(得分:1)

&#39; f.object&#39;获取与该表单关联的对象,然后您可以到达字段:

<%= f.select(:status, [["Not started","Not started"], ["Passed", "Passed"], ["Failed", "Failed"]]), :label => f.object.name %>

答案 1 :(得分:0)

最后我确实选择了内联选项,这不是理想的选择。但是我必须做以下事情。

主窗体设置为规范形式 下面的块设置为form-horizo​​ntal

然后将子表单部分定义为none simple_form

<div class="control-group form-inline">
  <div class="controls">
    <%= f.text_field :name, :disabled => 'true', :size => 10 %>
    <%= f.select(:status, [["Not started","Not started"], ["Passed", "Passed"], ["Failed", "Failed"]]) %>
  </div>
</div>

如果将其设置为simpleform,则内联将无法按要求运行。再次不完美,当然不优雅,但工作