0

ここに私は次のモデルを持っています

顧客帳 Book_Manager

私の協会はフォローしています

BookManager
belongs_to :customer
Customer
has_many :book_managers, :dependent => :destroy

この段階では本は必要ありません

これは、Railscasts のネストされたモデル フォームに基づいていますが、なぜ機能しないのかわかりません。アプリケーションは次のように動作するはずです

顧客は customer#edit に入り、BookManagers (最後に作成されたもの) があれば参照します。そうでない場合は、空白とフォームが表示され、将来的に本が関連付けられる新しい book_manager を作成できるようになります。しかし、私はその段階ではありません。

ここにカスタマーコントローラー

def edit
    @customer = Customer.find(params[:id])
    @bookmanager = BookManager.first_or_create
end

彼が持っているレンダリングファイルは次のとおりです

<h3>Book</h3>
<div><%= render 'book_managers/form' %></div>

ここでは book_managers の _form.html.erb ファイル

<% form_for (@bookmanager) do |f| %>  
  <div class="field">  
    <%= f.label :customer_id %><br />  
    <%= f.text_field :customer_id %>  
  </div>  
  <div class="actions">
    <%= f.submit %>
  </div>  
<% end %> 

適切にレンダリングされることはわかっています。スクラップワードを入れると、フォームの外側に表示されます。しかし、bookmanager が実際に空であるか、nil であるか、適切に設定されているかはわかりません

4

1 に答える 1

0

<% form_for (@bookmanager) do |f| %>に変更

レール 3:

<%= form_for (@bookmanager) do |f| %> 

レール 2:

<%- form_for (@bookmanager) do |f| %> 

-の後に(Rails 2) または=(Rails 3)が必要です<%

于 2012-08-02T14:51:28.820 に答える