1

我在 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} %>

关于如何解决这个问题的任何想法?

迈克尔

4

2 回答 2

1

'f.object' 获取与该表单关联的对象,然后您可以访问以下字段:

<%= f.select(:status, [["Not started","Not started"], ["Passed", "Passed"], ["Failed", "Failed"]]), :label => f.object.name %>
于 2014-05-18T18:12:54.167 回答
0

最后,我确实选择了内联选项,这并不理想,但完成了工作。但是我必须执行以下操作。

主窗体设置为规范窗体 其下方的块设置为窗体水平

然后子表单部分定义为无 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>

如果将其设置为简单形式,则内联将无法按要求工作。再次不完美,当然也不优雅,但有效

于 2013-04-16T10:06:01.083 回答