我有兩種模式。事件和問題。 事件有很多問題。 我正試圖從事件#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