【问题标题】:why is message_id_equals method missing in Rails 3?为什么 Rails 3 中缺少 message_id_equals 方法?
【发布时间】:2011-03-28 02:22:49
【问题描述】:

我似乎有这个错误,我没有做任何特别的事情:

NameError (undefined method `message_id_equals' for class `ActiveRecord::Relation')

为什么?这是上下文:

@user_has_message = UserHasMessages.user_id_is(current_user.id).message_id_is(@message.id)

irb(main):012:0> UserHasMessages
=> UserHasMessages(id: integer, user_id: integer, message_id: integer, is_sender: boolean, created_at: datetime, updated_at: datetime)

【问题讨论】:

  • 请发布您的 UserHasMessages 类的相关部分。
  • @mikeonrails -- 你的意思是属性?我在上面的 sn-p 中从控制台输出它们......让我知道......谢谢!我认为 rd_searchlogic 应该允许我这样做.... :(
  • 我从未见过user_id_is 或类似的东西。这是在哪里定义的?

标签: ruby-on-rails active-relation


【解决方案1】:

你不能像那样把它们连在一起。您在 UserHasMessages 上被称为 user_id_is,它返回一个 ActiveRecord 响应,其中不包含 message_id_is 的方法。我真的不知道这些方法是什么,但我的猜测是它们不是作用域,否则它会让你像那样链接。

你不能这样做:

@user_has_message = UserHasMessages.where(:user_id => current_user.id, :message_id => @message.id)

为了达到同样的效果?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-02
    • 2022-01-14
    • 1970-01-01
    • 2015-11-14
    • 2020-10-26
    • 2012-08-12
    • 1970-01-01
    • 2020-11-02
    相关资源
    最近更新 更多