0

Ruby/Rails に .current のようなものはありますか?

トラックをネストされた属性として受け入れるために、Release モデルに次のものがあります。:after_add を使用して、結合テーブルを介して has_many の位置列を手動で設定しています。理想的には、フォームの fields_for 部分から送信された位置属性、または保存時にトラック テーブル/モデルに設定された値からコピーされた位置属性のいずれかから、これを設定したいと考えています。

すべてのエントリの最初または最後の位置を設定することはできますが、そのトラックに関連する現在の位置は設定できませんか?

理想的には、releases_tracks.each { |t|が必要です。t.position = self.tracks.last.position }は、 releases_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リレーションシップは 2 つの方法で機能するため、そのようなリレーションシップによってバインドされた 2 つのモデル «Owner» と «Belonging» の両方Owner.first.belongingBelonging.last.ownerクエリが有効です。

于 2012-05-05T16:04:11.593 に答える