我现在一直在努力解决这个问题。
为简单起见,假设我有一个用户问的Lead The Jungle应用程序 适用于某些目的地的建议。在回答这个,其他,经验丰富 用户建议一个引导他们直接指导他们的人。
假设我有以下型号。
class User < ActiveRecord::Base
has_many :destinations
validates :username, :email
#..
end
class Recommendation < ActiveRecord::Base
belongs_to :user
belongs_to :destination
belongs_to :guide
#..
end
class Guide < ActiveRecord::Base
has_many :recommendations
validates :name, :nickname, :phone
#..
end
class Destination < ActiveRecord::Base
has_many :recommendations
has_many :users
#..
end
在我的页面上,在丛林地图旁边,我希望有一个小部件 我可以向相关的指导人员提出最多三条建议到一个目的地。我也想 向导游提供联系方式。
问题是,我在某些分组关系下没有这三个推荐的指南(例如图库下的照片)。 所以我不能简单地使用嵌套属性。
有没有办法创建多个嵌套对象,而没有包含它们的单个父对象?
我尝试了以下(在许多其他方法中),但指南参数不在他们的推荐下,我看不出哪个指南与哪个推荐相关。
<%= form_tag('recommendations') do -%>
<ul id="selected-guides">
<% @recommendations.each_with_index do |recommendation, index| %>
<%= render 'recommendation_fields', :recommendation => recommendation} %>
<% end %>
</ul>
<%= submit_tag %>
<% end %>
_recommendation_fields.erb
<%= fields_for recommendation do |Recommendation_fields| %>
<div>
<%= fields_for recommendation.guide do |guide_fields| %>
<%= guide_fields.text_field :name %>
<%= guide_fields.text_field :nickname %>
<%= guide_fields.text_field :phone %>
<% end %>
</div>
<% end %>
感谢您的帮助!
答案 0 :(得分:0)
你可以尝试使用rails 3.1并且通过assosiaction进行操作。 看看ryan bates的新截屏视频,它可能对你有帮助!
http://railscasts.com/episodes/265-rails-3-1-overview
项目的ryans示例(models / project.rb)
has_many :tasks
has_many :assigments, :through => :tasks
has_many :users, :through => :assignments
在你的情况下,你也可以像这样访问,我想