0

Ruby/Rails 中是否有 .current 之类的东西?

我的 Release 模型中有以下内容可以接受轨道作为嵌套属性。我正在使用 :after_add 通过连接表手动设置 has_many 中的位置列。理想情况下,我希望从我的表单的 fields_for 部分发送的位置属性或从保存时轨道表/模型中设置的值复制来填充它。

我可以让它设置所有条目的第一个或最后一个位置,但不能设置与该轨道相关的当前位置?

理想情况下,我需要releases_tracks.each { |t| t.position = self.tracks.last.position } 类似于 release_tracks.each { |t| t.position = self.tracks.current.position }

has_many :releases_tracks, :dependent => :destroy, :after_add => :position_track
has_many :tracks, :through => :releases_tracks, :order => "position"

accepts_nested_attributes_for :tracks, :reject_if => lambda { |a| a[:name].blank? }, :allow_destroy => :true
accepts_nested_attributes_for :releases_tracks

def position_track(track) 
  releases_tracks.each { |t| t.position = self.tracks.last.position }
end

任何人都可以帮忙吗?

4

1 回答 1

1

不能肯定地说我是否正确理解了你,但据我所知,releases_tracks.each { |t| t.position = t.track.position }应该可以解决你的问题。

belongs_to-has_many关系有两种工作方式,因此对于受这种关系约束的两个模型 «Owner» 和 «Belonging»Owner.first.belongingBelonging.last.owner查询都是有效的。

于 2012-05-05T16:04:11.593 回答