0

私の犬の形を私の別のビューでレンダリングしようとしていますPetsController.index:

def index
  @page_title = "Add Pets"
  @title = "Add Pets"
end

しかし、私はエラーが発生します:

NoMethodError in Pets#index

Showing C:/testapp/app/views/dogs/_form.html.erb where line #1 raised:

undefined method `model_name' for NilClass:Class

1: <%= form_for @dog do |f| %>

ペット/index.html.erb

<div class="tab-pane" id="tab4">
   <%= render "global/flash_message" %>
   <%= render :partial => "dogs/form", :locals => {:dog => @dog } %>
</div>

私はできることを知っています:

def index
  @page_title = "Add Pets"
  @title = "Add Pets"
  @dog = Dog.new
end

しかし、それでは地元のポイントは何ですか?DogsController代わりに使用できるように何が欠けていますか?

ありがとう!

4

1 に答える 1

4

アクションで@dogが割り当てられていない場合は、 への呼び出しでローカルに割り当てています。インスタンスの割り当てをアクションから除外して、インデックス ビューで実行することもできます (つまり、どこかで実行する必要があります。#indexnildogrender :partial:locals => {:dog => Dog.new}

于 2012-07-27T02:46:22.403 に答える