加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – 连接范围以获取Rails 3中的数据

发布时间:2020-12-16 19:37:53 所属栏目:百科 来源:网络整理
导读:从Rails 2到Rails 3我从来没有努力去理解某些东西(侧面的社论). 无论如何,在Rails 3应用程序中,我有以下模型… 用户: has_many :answers 回答: belongs_to :userbelongs_to :questionscope :user_answers,where (:user_id = current_user.id) 题: has_man
从Rails 2到Rails 3我从来没有努力去理解某些东西(侧面的社论).

无论如何,在Rails 3应用程序中,我有以下模型…

用户:

has_many :answers

回答:

belongs_to :user
belongs_to :question
scope :user_answers,where (:user_id => current_user.id)

题:

has_many :answers
scope :qs_w_user_ans,joins(:questions) & (:user_answers)

我得到的当前错误是“undefined方法`includes_values’for:user_answers:Symbol”

有一个问题ID和一个用户标识.每个答案都有question_id和user_id.

我需要用户的答案通过ids适当链接的问题.你能告诉我我的车型是错的吗?

谢谢.

解决方法

The&运算符(我认为最近不推荐使用)是合并的别名,它允许您基本上合并范围. :user_answers不是范围,所以你不能使用这个方法.

正如Dinatih指出的,你可以多次呼叫联接.在这种情况下,为每个连接创建不同的范围不会买你太多,所以他的方法适合你的情况.

更多信息范围:http://archives.edgerails.info/articles/what-s-new-in-edge-rails/2010/02/23/the-skinny-on-scopes-formerly-named-scope/index.html

更新

对不起我的误会. :user_answers是一个范围,但是在这种情况下您没有正确调用它.你想要以下内容:

scope :qs_w_user_ans,joins(:questions) & Answer.user_answers

合并范围时,您可以像类方法一样调用合并范围.

在我链接的文章中,发布在Post上的范围与范围合并:发布在User:

scope :published,lambda {
  joins(:posts).group("users.id") & Post.published
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读