Ruby on rails Rails多态关联错误

Ruby on rails Rails多态关联错误,ruby-on-rails,ruby-on-rails-3,polymorphic-associations,polymorphism,Ruby On Rails,Ruby On Rails 3,Polymorphic Associations,Polymorphism,我在多态关联方面有问题 关于我的项目的快速解释。你可以在这里看到:majorfinder.com在我的应用程序上会有专业、学校和职业。我希望能够添加每个评论。因为我才刚刚开始,我刚开始为专业添加评论,但是创建了一个协会,这样当我进入职业和学校时,评论协会就会很快成立 以下是我的联想: models/review.rb belongs_to :user belongs_to :reviewable, polymorophic: true models/user.rb has_many :revi

我在多态关联方面有问题

关于我的项目的快速解释。你可以在这里看到:majorfinder.com在我的应用程序上会有专业、学校和职业。我希望能够添加每个评论。因为我才刚刚开始,我刚开始为专业添加评论,但是创建了一个协会,这样当我进入职业和学校时,评论协会就会很快成立

以下是我的联想:

models/review.rb

belongs_to :user
belongs_to :reviewable, polymorophic: true
models/user.rb

has_many :reviews
models/major.rb

has_many :reviews, as: :reviewable
我的评论数据库模式如下所示:

create_table "reviews", :force => true do |t|
    t.text     "review"
    t.datetime "created_at",      :null => false
    t.datetime "updated_at",      :null => false
    t.integer  "user_id"
    t.integer  "reviewable_id"
    t.string   "reviewable_type"
  end
def show
    @major = Major.find_by_slug(params[:id]).includes(:reviews => :user)
end 
在我的majors控制器中,为了创建一个类似以下内容的url:www.majorfinder.com/majors/major-name。因此,我的控制器的一部分如下所示:

create_table "reviews", :force => true do |t|
    t.text     "review"
    t.datetime "created_at",      :null => false
    t.datetime "updated_at",      :null => false
    t.integer  "user_id"
    t.integer  "reviewable_id"
    t.string   "reviewable_type"
  end
def show
    @major = Major.find_by_slug(params[:id]).includes(:reviews => :user)
end 
在我的专业展示页面中,我有:

<% @reviews.each do |review| %>
    <div>
      <h3><%= link_to review.review,
        :controller => "reviews", :action => "show", :id => review.id %></h3>
      <small>Posted on <%= review.created_at %> by
        <a href="#"><%= review.user.profile_name %></a></small>
    </div>
  <% end %>
我得到以下错误:

NoMethodError in MajorsController#show

undefined method `includes' for #<Major:0x007f9466e001a8>

你能看到我遗漏了什么或者我应该改变什么吗?看起来解决办法很简单,但我不确定是什么。提前感谢您的帮助

我相信你想做的是当你找到专业的时候,立即加载
:查看
。你很接近,但你的顺序是反向的。这是必须的

@major = Major.includes(:reviews => :user).find_by_slug(params[:id])

有关快速加载的更多信息,请参阅本文。

您的问题非常清楚:
includes
方法没有为主要实例定义。我不太确定你问题的解决办法是什么。你是从一个例子中得到的吗?你想用那个方法调用做什么?是的,没错!非常感谢。谢谢你的rails指南。我一直在寻找,但不知道这个词渴望加载。我真的很感激!太好了,我很高兴能帮上忙!:)
@major = Major.includes(:reviews => :user).find_by_slug(params[:id])