【发布时间】:2021-03-30 08:31:15
【问题描述】:
我是 Rails 的新手,老实说,即使经过多次研究,我仍然在为查询而苦苦挣扎。 这是我的简单架构:
所以基本上,一个问题有很多选项,一个选项属于一个问题,有很多答案,一个答案属于一个选项,有很多用户。
我认为没有必要发布模型代码,因为它就像我上面提到的那样。
我想要做的是给出一个问题选项,看看某个特定用户是否已经检查过它(如果有行匹配给定的 id_option、user_id 和 user_type,请查看答案表)。所以在我的haml循环中,当显示不同的问题选项时,我正在调用我的question_option模型的一个方法,就像这样:
- question.question_option.all.each do |option|
#{option.title}
.check
- if option.selected_by(current_actor)
= check_box_tag(option.id, "checked",true, class: 'styled-checkbox')
- else
= check_box_tag(option.id, "checked",false, class: 'styled-checkbox')
以及调用的方法:
def selected_by(answerer)
answer_match =
::Vacancies::QuestionOption
.joins(:answers)
.where(answerer_id: answerer.id, answerer_type:answerer.type )
response = answer_match.find(self.id)
return response
end
此方法位于我的 QuestionOption 模型中,不会导致任何错误,但它无法正常工作。 您能帮我转换此查询以使其与 ActiveRecord 一起使用吗?谢谢
【问题讨论】:
-
“我认为没有必要发布模型代码,因为它就像我上面提到的一样。”,请做。就个人而言,更容易查看模型并知道如何复制您的场景。
-
你说得对,我应该这样做,但既然我解决了问题,我认为这不再是必要的了。无论如何,感谢您对它的兴趣。 :D
-
如果您自己解决了,您应该在下面发布您的解决方案。
标签: ruby-on-rails rails-activerecord arel