【发布时间】:2016-06-15 19:30:27
【问题描述】:
如果这是一个大问题,我深表歉意。我以前擅长滑轨,但已经很长时间了。
我正在处理一个 Rails 项目,但在处理 has_many 关系时遇到了问题。
我有以下表格:
User
SchoolClass
Question
UserClassQuestion
在我拥有的模型中:
user.rb
has_many :questions, :through => :user_class_questions
has_many :user_class_questions
school_class.rb
has_many :questions, :through => :user_class_questions
has_many :user_class_questions
question.rb
belongs_to :schoolclass
belongs_to :user
user_class_question.rb
belongs_to :question
所以,我想要在用户主页上显示,让他们查看他们用current_user.questions 提出的问题。这行得通。
但是在SchoolClass 显示页面上,如果我说@school_class.questions,我会收到以下错误:
!!<ActiveRecord::StatementInvalid: SQLite3::SQLException: no such colum:
user_class_questions.school_class_id: SELECT "questions".* FROM "questions"
INNER JOIN "user_class_questions" ON "questions"."id" =
"user_class_questions"."question_id" WHERE
"user_class_questions"."school_class_id" = ?>
@school_class 是由参数设置的对象
def set_school_class
@school_class = SchoolClass.find(params[:id])
end
UserClassQuestion 表中的列是:
{ user_id: , schoolclass_id: , question_id }
那么,我是不是设置有问题?
【问题讨论】:
-
你试过
has_and_belongs_to_many吗? -
你建议在哪里使用它?一个
user has_many questions和一个question belongs_to user。我希望同样的关系适用于SchoolClass表。看起来关系正常,但数据库命令说它不知道要搜索什么school_class_id。就像它没有从@school_class获取 id 一样 -
嗯我想写
user.rb : has_and_belongs_to_many :schoolclasses, schoolclass.rb: has_and_belongs_to_many :users -
但我认为你需要
question模型 -
在这种情况下,我建议您删除 user_class_question.rb 并将
:through => :user_class_questions替换为:through => :questions
标签: ruby-on-rails has-many-through has-many