不幸的是,我正在使用遺留數據庫進行滾動,並試圖圍繞它構建我的rails3應用程序。Rails3嵌套的屬性驗證和控制
感謝this上一篇文章,我已經想出了我要去的地方,但仍然認爲我接近不正確。
我的基本問題是,主我的主要數據存儲在一個表中有多個行,每個都有不同的屬性值:
+-----+----------+----------------+----+---------------+------------+
| id | username | attribute_name | op | value | raduser_id |
+-----+----------+----------------+----+---------------+------------+
| 173 | jenny | User-Password | := | March 25 2011 | 33 |
| 172 | jenny | User-Password | := | 1234 | 33 |
+-----+----------+----------------+----+---------------+------------+
2 rows in set (0.00 sec)
我使用的是嵌套形式進入這個信息,但它不是真的做我需要的。我現在可以添加嵌套屬性並設置一個字段,這要感謝上一個問題。
我遇到的問題是我需要對用戶的輸入進行更多的控制。舉例來說,我需要把它們限制三個不同的屬性:
用戶密碼,過期,同時,使用
我還需要驗證的字段。我不能用嵌套的形式。
我的計劃是讓用戶在父模型中輸入這些內容並向下傳播,但我不知道如何執行此操作並將其保存到單獨的行中,就像我使用嵌套的屬性一樣。
任何人都可以對此有所瞭解嗎?
--UPDATE--
raduser.rb
class Raduser < ActiveRecord::Base
has_many :radcheck, :dependent => :destroy
accepts_nested_attributes_for :radcheck, :reject_if => lambda { |a| a[:value].blank? }, :allow_destroy => true
end
radcheck.rb
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
before_save :sync_usernames
private
def sync_usernames
self.username = self.raduser.username
end
end
我不知道你的數據model..can你給在radusers表中的字段也和如何實體raduser和radcheck有關係嗎? – rubyprince
@rubyprince對不起,不知道爲什麼我以前沒有看到你的評論。現在會這樣做。 –