ruby-on-rails - 如何从单个事件记录对象获取列值

标签 ruby-on-rails ruby activerecord rails-activerecord

我从表中获取问题对象

@issue = Issue.where(id: issue_id)

所以我有下一个事件记录对象。

ActiveRecord::Relation::WhereClause:0x00007f88ea670f00 @predicates=[#<Arel::Nodes::Equality:0x00007f88ea670fa0 @left=#<struct Arel::Attributes::Attribute relation=#<Arel::Table:0x00007f88ea05fe68 @name="issues", @type_caster=#<ActiveRecord::TypeCaster::Map:0x00007f88ea05fee0 @types=Issue(id: integer, tracker_id: integer, project_id: integer, subject: string, description: text, due_date: date, category_id: integer, status_id: integer, assigned_to_id: integer, priority_id: integer, fixed_version_id: integer, author_id: integer, lock_version: integer, created_on: datetime, updated_on: datetime, start_date: date, done_ratio: integer, estimated_hours: float, parent_id: integer, root_id: integer, lft: integer, rgt: integer, is_private: boolean, closed_on: datetime)>, @table_alias=nil>, name="id">, @right=#<Arel::Nodes::BindParam:0x00007f88ea670fc8 @value=#<ActiveRecord::Relation::QueryAttribute:0x00007f88ea670ff0 @name="id", @value_before_type_cast=1, @type=#<ActiveRecord::ConnectionAdapters::SQLite3Adapter::SQLite3Integer:0x00007f88e6cd3950 @precision=nil, @scale=nil, @limit=nil, @range=-9223372036854775808...9223372036854775808>, @original_attribute=nil>>>]>}

使用 project_id: integer 列,但是当我尝试获取 project_id 值时 - 它引发了错误

我的代码:

project_id = @issue.project_id

错误:

NoMethodError (undefined method `project_id' for #<Issue::ActiveRecord_Relation:0x00007fdb03e0e008>
Did you mean?  object_id):

最佳答案

@issue = Issue.where(id: issue_id) 

上面为您提供了一个包含一个问题的关系(如果未找到匹配项,则没有问题)。

如果您想要问题本身,您可以这样做

@issue = Issue.where(id: issue_id).take

或者更常见

@issue = Issue.find_by(id: issue_id) 

以上内容为您提供了问题(如果找到)或为零。

如果您确实知道 issues_id 存在,您可以这样做

@issue = Issue.find(issue_id)

但是如果找不到记录,则会生成运行时错误。

关于ruby-on-rails - 如何从单个事件记录对象获取列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59214713/

相关文章:

ruby-on-rails - ruby rails : how to get error messages from a child resource displayed?

ruby-on-rails - 我如何以不同的间隔遍历日期范围?

ruby-on-rails - 使用 xpath 在 selenium 中检索文本?

ruby-on-rails - 重写 Rails 辅助路由方法以通过 GET 参数设置布局

javascript - javascript 中的非阻塞 setTimeout 与 ruby​​ 中的 sleep

javascript - 在 Rails 中的确认对话框中单击“取消”时触发 'click' 事件

ruby-on-rails - 选项.获取。我不明白

ruby-on-rails - Rails 列迁移中的 `index` 选项是否有效?

ruby - 方法和变量名相同

mysql - 如何抑制DDL日志