fields_for访问关联关联

时间:2014-05-22 07:40:58

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

我有一组模型及其关联:

class A < ActiveRecord::Base
    has_one  :B
    has_many :X
end

class B < ActiveRecord::Base
    belongs_to :A
end

class X < ActiveRecord::Base
    belongs_to :A
end

我想使用simple_form_for。

在表单中访问X到A.
<%= simple_form_for(@b) do |f| %>
    <%= f.input :b_field %>

    <%= f.fields_for **:A.X** do |x| %>
        <%= x.input :x_field %>
    <% end %>
<% end %>

我认为如果我只是在控制器或帮助器中访问它,我会做这样的事情

def func
    b = B.new
    x = b.A.X.first()
end

有人可以为我解释一下吗?

更新以添加更多内容:

A类实际上是一个帐户类,它包含特定帐户类型所需的所有信息。

X类包含图像,并与A类相关联,以保存该帐户的所有图片。

添加了B类,因为有必要使用与A类不同信息的其他类型的帐户,但由于大量信息被重复,因此决定将A类保留为root帐户记录并将新信息存储在B级。

现在已经出现了B类要求拥有图像的要求,所以似乎最简单的解决方案是使用A类中的关联来管理它,但我们需要通过关联返回到类A.X.我希望将这些协会用作更整洁的东西,而不仅仅是为了让它起作用。

问题

只是一个想法,这是使用像这样的通过关键字的答案吗?

class B < ActiveRecord::Base
    belongs_to :A
    has_many :X, through: :A
end

0 个答案:

没有答案