1
我已經建立了一個has_many通過關係在我的分貝,並改變了關鍵,因爲我正在使用遺留數據庫。有許多通過複選框不保存值Rails3
這一切似乎工作,但我不能讓複選框保存到數據庫。
我的型號如下:
class Radcheck < ActiveRecord::Base
set_table_name 'radcheck'
attr_accessible :attribute_name, :username, :value, :op, :groupname
belongs_to :raduser
has_many :radusergroup, :dependent => :destroy, :primary_key => :username, :foreign_key => :groupname
has_many :radgroupcheck, :through => :radusergroup
end
class Radgroupcheck < ActiveRecord::Base
set_table_name 'radgroupcheck'
has_many :radusergroup, :dependent => :destroy#, :primary_key => :groupname, :foreign_key => :username
has_many :radcheck, :through => :radusergroup
end
class Radusergroup < ActiveRecord::Base
belongs_to :radcheck, :foreign_key => 'groupname', :primary_key => 'username'
belongs_to :radgroupcheck, :foreign_key => 'username', :primary_key => 'groupname'
end
在我的形式,我有這樣的:
<% Radgroupcheck.all.each do |group| -%>
<%= check_box_tag :groupnames, group.id, @radcheck.radgroupcheck.include?(group), :username => 'radcheck[groupname][]' -%> | <%= label_tag :groupnames, group.groupname -%>
<% end -%>
的形式呈現的複選框OK,我可以看到的組名,但沒有任何反應,當我打保存。
開發日誌很清晰,我在mysql查詢日誌中也看不到任何東西。在您的形式使用該
仍然沒有喜樂 - 和以前一樣:( –
必須與我的命名有關嗎? –
是的,命名必須是正確的。請嘗試在命令中使用'Radcheck.first.radgroupcheck_ids'安慰。這個方法應該返回一個ID數組。這個方法名稱是應該在HTML表單中使用的名稱。如果radgroupcheck_ids不是方法,請嘗試'將Radcheck.first.methods.grep(/ _ id /)'放在控制檯中並查找正確的方法。 –