Rails:嵌套资源问题:新表单

时间:2011-04-19 14:35:25

标签: ruby-on-rails ruby-on-rails-3 forms resources nested

我有两个型号。活动和问题。 活动有很多问题。 我正在尝试从Events#show视图创建一个新问题。 链接出现类似/ events /:event_id / questions / new。但点击它会产生错误 -

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 %>

2 个答案:

答案 0 :(得分:2)

你已经在问题控制器的开头宣布私有,所有在此之后也是私有的,你的行动也被宣布为私有剪切它并在私有之前粘贴它然后尝试

答案 1 :(得分:1)