Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails模型如何在类方法中引用列_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails Rails模型如何在类方法中引用列

Ruby on rails Rails模型如何在类方法中引用列,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我目前有两个模型-问题和响应,我正在尝试在响应模型上添加一个方法,以便我可以执行Issue.Responses.latest 我目前正在为#self.issue_id)获取未定义的方法'issue_id')您正在引用issue_id列fine。问题是您试图提供一个值self.issue\u id,但是没有issue\u id类方法来响应 另外,issue.responses.latest不会调用Response的latest类方法,因为responses是一个。但是,您可以定义问题最新\u响应的

我目前有两个模型-问题和响应,我正在尝试在响应模型上添加一个方法,以便我可以执行
Issue.Responses.latest


我目前正在为#self.issue_id)获取
未定义的方法'issue_id')您正在引用
issue_id
列fine。问题是您试图提供一个值
self.issue\u id
,但是没有
issue\u id
类方法来响应

另外,
issue.responses.latest
不会调用
Response
latest
类方法,因为
responses
是一个
。但是,您可以定义
问题
最新\u响应的实例方法


在一个相关的点上,由于
responses
是一个
可枚举的
,您可以通过{code>response{response}response.created{u at}

执行
issue{id
中的
删除
self.issue{id
中的
自我
,我得到了错误
未定义的局部变量或方法'issue{id'
正确。你想过滤什么?也就是说,您打算在这里指定
issue\u id
的值是什么?我最终尝试执行
issue.responses.latest
,以获取对特定问题的最后一次响应。好的,我们从
issue开始。响应将属于
类型。如果你在最后使用
来创建一个
,你会得到一个数组。为
Response
定义类方法对您没有帮助。您可以定义一个
Issue
实例方法,让您执行
Issue.latest\u Response
或定义一个
Response
类方法,让您执行
Response.latest(Issue.responses)
class Issue < ActiveRecord::Base
  has_many :responses
end

class Response < ActiveRecord::Base
  belongs_to :issue

  def self.latest
    select([:id, :user_id, :issue_id, :response, 'MAX(created_at)'])
       .where(:issue_id => self.issue_id) <!-- How to reference the issue_id column here?
       .group(:issue_id)
  end
end