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未在您的#index操作中分配,那么您将在调用中分配nil给您的dog本地人render :partial。您可以将实例分配排除在操作之外并在您的索引视图中执行(即:locals => {:dog => Dog.new},但它必须发生在某个地方。

于 2012-07-27T02:46:22.403 回答