2011-09-26 67 views
3

我在製作更新或保存保存的消息的表單。form_for中的rails參數

<% form_for @draft, :url => {:controller => "drafts", :action => "draft_actions"} do |f|%> 

     subject 
    <%=f.text_field :subject %> 

     recipients 
    <%=f.text_field :draft_recipients %> 

<br /> <%= f.text_area :body %> 


     <%= submit_tag "save", :name => "resave_draft"%> 
     <%= submit_tag "send", :name => "send_draft" %> 

<% end %> 

,但我想顯示在一個不錯的方式收件人,用逗號分隔:中user1, user2, user3代替user1user2user3 我的問題是:我不明白如何讓在:recipients符號映射到我的收件人屬性我的模型草案,但仍然有顯示的收件人視圖中顯示我多麼希望

的代碼爲我draft模型

class Draft < ActiveRecord::Base 

belongs_to :message 
belongs_to :draft_recipient, :class_name => "User" 
delegate :created_at, :subject, :user, :body, :draft_recipients, :to => :message 

我的消息模型的代碼如下

class Message < ActiveRecord::Base 

belongs_to :user 
has_many :recipients, :through => :message_copies 
has_many :draft_recipients, :through => :drafts 
has_many :message_copies 
has_many :drafts, :class_name => "Draft", :foreign_key => :message_id 

attr_accessor :to #array of people to send to 
attr_accessible :subject, :body, :to, :recipients, :author, :user 

我敢肯定有一個相當簡單的方式來做到這一點,但我不能讓我的頭周圍。

+0

你可以把草稿模型的代碼? –

+0

'收件人'在哪裏?如果'draft_recipients'替代它,它是如何在'Message'模型中定義的? –

+0

對不起,它確實是draft_recipients。 – Arthur

回答

4
<%=f.text_field :draft_recipients, :value => @draft.draft_recipients.join(',') %> 

可能爲你工作。但是,您是否在控制器中處理轉換?當您提交時,這不會完全正確地綁定。

+0

好吧,我已經計劃轉換回控制器。我會試試這個。謝謝! – Arthur

+0

工作就像一個魅力!我在哪裏/如何發現自己的價值屬性?我似乎在閱讀API文件似乎...吸取... – Arthur

+0

這是一個很好的問題@Arthur。文檔沒有明確指出':value'是否存在 - 但是最後要考慮轉換爲HTML的內容。你可以在那裏申請任何東西。一個常見的,它知道如何處理,是'數據定製'屬性。 ':data => {:custom =>「value」,:morecustom =>「morevalue」}'變成'data-custom =「value」data-morecustom =「morevalue」'per http://www.javascriptkit的.com/dhtmltutors/customattributes.shtml。你也可以構造其他屬性,這在你的應用程序中是合理的(對於jQuery選擇器也許?)。 – Travis