2011-06-30 6 views
0

まずは私はネイティブスピーカーではなく、3日前にレールで始まったばかりです。私の間違いをおかけして申し訳ありません。 Formtasticは私を夢中にしています。ここFormtasticのヘルプ

class User < ActiveRecord::Base 
has_many :receivers 
has_many :notes, :through => :receivers 
attr_accessible :id, :email, :password, :password_confirmation, :remember_me 

class Note < ActiveRecord::Base 
has_many :receivers 
has_many :users, :through => :receivers 
attr_accessible :id, :text, :user_id 
accepts_nested_attributes_for :receivers 

class Receiver < ActiveRecord::Base 
belongs_to :user 
belongs_to :note 
attr_accessible :user_id, :note_id, :note_attributes 

accepts_nested_attributes_for :user 
accepts_nested_attributes_for :note 

そして、私のformtasticフォーム:ユーザー、ノート、受信機:

<%= semantic_form_for @note do |form| %> 
<%= form.inputs do %> 
    <%= form.input :text %> 
    <%= form.input :user_id, :as => :check_boxes, :collection => User.find(:all, :conditions => ["id != ?", current_user.id], :order => 'id').collect{|u| [u.email, u.id]} %> 
<% end %> 
<%= form.buttons %> 
<% end %> 

は今、私はいくつかの受信機を持つことができ、新しいメモを作成したい私は3つのテーブルを持っています。残念ながら、ノートだけが作成されますが、レシーバを選択してもレシーバテーブルにはエントリはありません。誰かが私を助けることができますか?

ここに私のnotes_controller:logger.infoを使用して、すべてのパラメータがフォームから渡されているか確認し、また、ノートモデルにattr_accessibleようcode reciever_ids codeを追加してみてくださいことができます:[注]を

@note = Note.new(params[:note]) 
+0

あなたは何を意味するのですか? ---あなたのフォームに受信者のエントリが表示されません –

答えて

0

はのparamsを印刷

0

ビューモデルでは、attr_accessibleを使用していますが、入れ子になったフォームが表示されたときにフォームから来る、receive_attributesのようなattr_accessibleにないフィールドはすべて保存しません。だから、あなたもの新しいアクションでattr_accessible

attr_accessible :id, :text, :user_id, :receiver_attributes 

を持っている、(あなたも彼らのために、ネストされたフォームを持っている場合)ユーザーとReceiverにこれを実行したい場合がありますattr_accessible list.Youにreceiver_attributesを追加する必要がありますnotes_controller、フォームで、その後

@note.build_receiver 

のようなビルド方法を使用する必要がある、あなたは、受信機のフィールドを表示するコードを記述する必要があります。 "私は受信機を選択した場合でも。"

<%= semantic_form_for @note do |form| %> 
<%= form.inputs do %> 
    <%= form.input :text %> 
    <%= form.input :user_id, :as => :check_boxes, :collection => User.find(:all, :conditions => ["id != ?", current_user.id], :order => 'id').collect{|u| [u.email, u.id]} %> 
<% end %> 
    <%=f.semantic_fields_for :receiver_attributes, @note.receiver do|receiver| %> 
    <!-- Add receiver related input here using the receiver block variable like receiver.input --> 
    <% end %> 
<%= form.buttons %> 

<%エンド%>は

関連する問題