2012-05-05 18 views
0

Есть ли такая вещь, как .current в Ruby/Rails?Ruby/Rails .first .last .current?

У меня есть следующая модель моей версии, чтобы принимать дорожки как вложенные атрибуты. Я использую: after_add, чтобы вручную установить столбец позиции в таблице has_many через join. Я в идеале хочу, чтобы это было заполнено либо атрибутом позиции, посланным из полей_ для части моей формы, либо скопированным из значения, заданного в таблице/модели треков при сохранении.

Я могу заставить его установить первую или последнюю позицию для всех записей, но не текущую позицию, относящуюся к этой дорожке?

Мне в идеале нужен 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 

Может кто-нибудь помочь?

ответ

1

Не могу сказать точно, если вы правильно поняли, но, насколько я могу судить, releases_tracks.each { |t| t.position = t.track.position } должен решить вашу проблему.

belongs_to - has_many отношение работает два пути, так что для двух моделей «Владелец» и «Принадлежность» обязательности таких отношений как Owner.first.belonging и Belonging.last.owner запросов являются действительными.

+0

Ура! Это работает, спасибо. Кажется простым, теперь вы указали это, но я прошел через множество разных перестановок. – Raoot

Смежные вопросы