2009-10-19 64 views
0

我一直在試圖做這個年齡段,似乎能夠把握它。希望有人能幫忙嗎?通過驗證將一個屬性寫入我的表中?

我有一個'消息'模型,有很多通過'發佈'關係到'contact_detail'模型。

基本上,一條消息可能有許多聯繫人與之關聯,並且聯繫人可能有很多消息。

我可以得到這個工作,併成功保存它,但我還希望'分配'模型,我想設置爲真正的消息creater創建屬性。

我的形式PARAMS如下:

{ 「消息」=> { 「消息」=> 「一個偉大的消息......」, 「messagable_id」=> 「58」, 「稱號」 => 「你怎麼樣?」, 「messagable_type」=> 「MachineEnquiry」, 「message_type_id」=> 「1」, 「contact_detail_ids」=> [ 「2」, 「2」, 「11」, 「7」]}, 「提交」=> 「發送信息」, 「日期時間」=> 「」}

在 '分配' 模型具有接觸_detail_id'屬性,這是所有保存,但在保存之前,我想設置創建屬性以及contact_detail_id。

我可以這樣保存後,但我想驗證創建者已設置,所以我必須這樣做之前保存不要我嗎?並不知道如何做到這一點。

任何想法?希望有人可以幫忙?

在此先感謝 裏克

回答

0

從你的方式描述事物,創作者應該與特定信息相關的每個發行紀錄相同。保存更有意義的添加一個新列和belongs_to關係到消息。

class Message < ActiveRecord::Base 
    belongs_to :creator, :class_name => "User" # links creator to your User model 
    validates_presence_of :creator_id # ensures creator_id is not empty 

    ... 
end 

從填表的那場是增加

<%= f.hidden_field :creator_id, current_user.id %> 

如果我錯了,在承擔同樣的消息分發記錄將具有相同的創作者一樣簡單,那麼你應該看看accepts_nested_attributes_for將細節從表單傳遞到相關模型。