我有两种模式。事件和问题。 事件有很多问题。 我正试图从事件#show视图中创建一个新问题。 该链接出现在/ events /:event_id/questions/new之类。但当点击它会给出错误 -Rails:嵌套资源问题:新表单
undefined method `model_name' for NilClass:Class
我想我的_form.html或问题控制器中的新方法有错误。
有人可以帮忙吗?
Event.rb
class Event < ActiveRecord::Base
has_many :questions
end
Question.rb
class Question < ActiveRecord::Base
belongs_to :event
end
的routes.rb
resources :events do
resources :questions
end
活动 - show.html.erb
<p> <%= link_to "Ask", new_event_question_path(@event) %> </p>
问题控制器
before_filter(:get_event)
private
def get_event
@event = Event.find(params[:event_id])
end
def new
@question = Question.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @question }
end
end
_form.html.erb
<%= form_for([@event,@question]) do |f| %>
<% if @question.errors.any? %>
<div id="error_explanation">
........
........
......
<div class="actions">
<%= f.submit %>
</div>
<% end %>
感谢队友。有效。我如何只使一种方法是私人的? – 2011-04-19 14:47:47
把它放在你的控制器的底部 – Mischa 2011-04-19 14:53:37
你需要什么,应该是私人的,把它放在底部,并使其私密。 – 2011-04-19 14:58:35