从父级中选择选项

时间:2014-07-16 13:05:39

标签: ruby-on-rails ruby ruby-on-rails-4

我有一个@miniature模型。 Miniatures has_many制造商通过@minilines 我有一个@line模型。 Lines belongs_to Manufacturer。

如果要将@miniature添加到@Line,请单击以下链接。

<%= link_to '<i class="fa fa-plus"></i> add'.html_safe, new_miniline_path(:miniature_id => @miniature) %>

您看到的表格如下

<%= form_for(@miniline) do |f| %>
    <%= f.hidden_field :miniature_id, :value => @miniature.id %>

    <%= f.label :line_id, 'Select product line' %><br />
    <%= f.select :line_id, @lines, include_blank: true %>


  <%= f.submit "Add", class: "btn btn-large btn-primary" %>
<% end %>

这很好但我想要做的是使options_for_select只显示与当前@miniature的@manufacturer相关联的@lines。

我正在尝试

<%= f.select :line_id, mfr_lines(@miniature), include_blank: true %>

然后在minilines_helper中定义它,但我无法解释如何用它来表达

module MinilinesHelper

    def mfr_lines(miniature)
        miniature.manufacturers.each do |manufacturer|
            manufacturer.lines

        end
    end

end

它希望吸引每个制造商并获得他们的行,然后加入他们。

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:0)

试试:

<%= f.select :line, @lines, include_blank: true %>

不要使用:line_id 作为名称,如果您在此处命名相关模型,则rails知道该怎么做。