Ruby on rails Rails多态关联错误
我在多态关联方面有问题 关于我的项目的快速解释。你可以在这里看到:majorfinder.com在我的应用程序上会有专业、学校和职业。我希望能够添加每个评论。因为我才刚刚开始,我刚开始为专业添加评论,但是创建了一个协会,这样当我进入职业和学校时,评论协会就会很快成立 以下是我的联想: models/review.rbRuby 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
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])