我有一组模型及其关联:
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