我以前在舊的Rails應用程序中使用過has_and_belongs_to_many關聯,但我正在轉向使用has_many :: through來創建新的和當前的應用程序。但是,我相信我錯過了has_many的核心:通過Rails 3中的關聯。Rails 3 has_many的問題has_many:通過關聯和視圖/表單
目前,我正在爲我們城鎮的志願者消防部門構建一個應用程序。當我們開會時,我們要檢查一下消防員是否在場,放棄或不在場。
我的模型:
#FireFighter Model
class FireFighter < ActiveRecord::Base
has_many :attendance_meetings
has_many :meetings, :through => :attendance_meetings
accepts_nested_attributes_for :meeting
#Meeting Model
class Meeting < ActiveRecord::Base
has_many :attendance_meetings
has_many :fire_fighters, :through => :attendance_meetings
accepts_nested_attributes_for :fire_fighter
#AttendanceMeeting Model
class AttendanceMeeting < ActiveRecord::Base
attr_accessor :status # this is the added property on the join model that we need populated
belongs_to :fire_fighter
belongs_to :meeting
我遇到的問題是如何在視圖中設置此。目前,我有:
= hidden_field_tag "meeting[fire_fighter_ids][]"
[email protected]_fighters.each do |fire_fighter|
= fire_fighter.fire_fighter_name
%span.radio_btn= radio_button_tag :fire_figher_ids, fire_fighter.id, "present"
present
%span.radio_btn= radio_button_tag :fire_figher_ids, fire_fighter.id, "excused"
excused
%span.radio_btn= radio_button_tag :fire_figher_ids, fire_fighter.id, "absent"
absent
%br
這將吐出的每個消防戰士和三個單選按鈕,每個消防員(與目前的選擇,爲自己開脫,或不存在)。然而,由此產生的單選按鈕的名稱都是一樣的,所以你只能選擇一個消防戰士。
正如我上面提到的,我覺得我缺少一些基本的東西,但我很難過。我已經閱讀了大量的SO問題以及ActiveRecord上Rails 3 Way書的章節。任何建議或方向將不勝感激。謝謝!
謝謝!我很欣賞這種迴應,現在正在嘗試這種方法。我一直認爲我在形式上的錯誤關聯(fire_fighters v。attendance_meeting)。 –
不幸的是,它不適合我,但我相信,我的模型中有一些不妥之處。 –
你收到了什麼錯誤? – mark