我有一个电影控制器和一个搜索控制器。在我的搜索控制器中,我能够从IMDB搜索电影。我正在尝试制作一个表单,我可以单击“将电影添加到库”并尝试在电影表中创建一个新条目。
在我的搜索控制器中我有
def new
@search = Search.new
@movie = Movie.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @search }
end
end
在我的搜索索引视图中,我有
<%= simple_form_for(@movie) do |f| %>
<%= f.input :title, :as => :hidden, :input_html => { :value => "Skyfall" } %>
<%= f.input :year, :as => :hidden, :input_html => { :value => "2012" } %>
<%= f.input :description, :as => :hidden, :input_html => { :value => "James Bond" } %>
<%= f.association :genres, include_blank: false, :as => :hidden, :input_html => { :value => "some value" } %>
<%= f.button :submit, class: "btn btn-primary" %>
我在搜索#index中得到NoMethodError,后跟NilClass:Class的未定义方法`model_name'。
答案 0 :(得分:0)
你的代码没问题,我的意思是,你在控制器上放了一个@movie的新对象,这很好。
只需确保在Search#index中添加对象的新实例,如下所示:
def index
@movie = Movie.new
end
您收到错误是因为在此行评估视图表单时:
<%= simple_form_for(@movie) do |f| %>
@movie是nil,所以model_name不是对象nil的方法,你得到了异常。