Ruby on Rails访问使用.last找到的记录的属性

埃里克

在我的资产索引视图中,当它遍历每个时Asset,我想显示最新的场景名称。我正在使用.last提取最新记录。当我检查返回的内容时,可以看到这些值。问题是,当我尝试访问所返回内容的属性之一时,会得到一个未定义的方法。

因此,例如,如果我这样做:

<%= (asset.scene_assignments.where(asset_id: asset).order("created_at").last).scene_id %>

我得到:

Assets#index未定义方法`scene_id'中的NoMethodError用于SceneAssignment:0x4bc2c28

但是,如果我调用#inspect而不是#name,我可以看到其中包含的内容。因此,如果我这样做:

<%= (asset.scene_assignments.where(asset_id: asset).order("created_at").last).inspect %>

它打印此:

SceneAssignment id:4,scene_id:3,asset_id:1,到达时间:nil,created_at:“ 2014-10-16 01:43:50”,updatedat:“ 2014-10-16 01:43:50”,location_id:1 ,asset_role_id:1

为什么我不能从返回的内容中访问属性之一?

在我的资产索引视图中,我有以下内容:

<% @assets.each do |asset| %>
  <tr>
    <td><%= asset.name %></td>
    <td>
      <%= (asset.scene_assignments.where(asset_id: asset).order("created_at").last).inspect %>
    </td>
    <td><%= link_to 'Show', asset %></td>
    <td><%= link_to 'Edit', edit_asset_path(asset) %></td>
    <td><%= link_to 'Destroy', asset, method: :delete, data: { confirm: 'Are you sure?' } %></td>
  </tr>
<% end %>

我在资产和场景之间的关系设置如下:

class SceneAssignment < ActiveRecord::Base
  belongs_to :scene
  belongs_to :asset
  belongs_to :location
  belongs_to :asset_role
  belongs_to :incident

  accepts_nested_attributes_for :asset
end

class Scene < ActiveRecord::Base
  has_many :scene_assignments
  has_many :assets, :through => :scene_assignments
  belongs_to :incident
  belongs_to :scene_type

  accepts_nested_attributes_for :scene_assignments, :allow_destroy => true
end

class Asset < ActiveRecord::Base
  has_many :scene_assignments
  has_many :scenes, :through => :scene_assignments
end
史蒂夫·乔根森

我相信是.scene_id,不是.last造成您的错误。.where(…)的结果是记录的集合,而不是单个记录。

为了解决这个问题,您可以说,asset.scene_assignments.where(asset_id: asset).order("created_at").last).first.scene_id尽管这会使一些相当混乱的代码变得更糟。:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 Ruby on Rails 更新和访问会话

来自分类Dev

Ruby on Rails活动记录

来自分类Dev

Ruby on Rails:无法通过评论访问用户属性

来自分类Dev

访问联接表属性以在视图上显示内容,Ruby on Rails?

来自分类Dev

Ruby on Rails:更新属性

来自分类Dev

Ruby / Rails ActiveRecord属性找到布尔值

来自分类Dev

基于ruby on rails中关联模型属性的模型排序记录

来自分类Dev

Ruby on Rails活动记录查询

来自分类Dev

使用Scala访问google API,Ruby on Rails中的前端

来自分类Dev

使用Scala访问google API,Ruby on Rails中的前端

来自分类Dev

使用ruby访问浏览器的公共“ window”属性

来自分类Dev

Ruby on Rails - 使用关联模型属性验证属性

来自分类Dev

在Mongoid Rails和Ruby中使用记录委托

来自分类Dev

在Ruby on Rails中使用活动记录执行SQL操作

来自分类Dev

Ruby on Rails新对象属性

来自分类Dev

Ruby on Rails,访问非持久属性和属性默认值

来自分类Dev

如何定位模型并访问嵌套在Ruby on Rails中两层深处的记录?

来自分类Dev

在 ruby on rails 活动记录查询中找到第二大元素的更好方法

来自分类Dev

使用Ruby on Rails将索引号添加为HTML属性

来自分类Dev

如何在模型中使用属性的值?Ruby on Rails

来自分类Dev

Ruby on Rails-禁止在params上使用属性?

来自分类Dev

Ruby / Rails使用数组项更新模型属性吗?

来自分类Dev

为什么我无法在 ruby rails 的视图中访问模型的属性?

来自分类Dev

rails:访问表属性并使用group()

来自分类Dev

rails:访问表属性并使用group()

来自分类Dev

在Ruby on Rails中使用

来自分类Dev

Ruby on Rails帮助如何找到方法的来源

来自分类Dev

Ruby on Rails“可以找到ID =创建的用户”

来自分类Dev

Ruby-on-Rails从Rake任务创建记录

Related 相关文章

  1. 1

    使用 Ruby on Rails 更新和访问会话

  2. 2

    Ruby on Rails活动记录

  3. 3

    Ruby on Rails:无法通过评论访问用户属性

  4. 4

    访问联接表属性以在视图上显示内容,Ruby on Rails?

  5. 5

    Ruby on Rails:更新属性

  6. 6

    Ruby / Rails ActiveRecord属性找到布尔值

  7. 7

    基于ruby on rails中关联模型属性的模型排序记录

  8. 8

    Ruby on Rails活动记录查询

  9. 9

    使用Scala访问google API,Ruby on Rails中的前端

  10. 10

    使用Scala访问google API,Ruby on Rails中的前端

  11. 11

    使用ruby访问浏览器的公共“ window”属性

  12. 12

    Ruby on Rails - 使用关联模型属性验证属性

  13. 13

    在Mongoid Rails和Ruby中使用记录委托

  14. 14

    在Ruby on Rails中使用活动记录执行SQL操作

  15. 15

    Ruby on Rails新对象属性

  16. 16

    Ruby on Rails,访问非持久属性和属性默认值

  17. 17

    如何定位模型并访问嵌套在Ruby on Rails中两层深处的记录?

  18. 18

    在 ruby on rails 活动记录查询中找到第二大元素的更好方法

  19. 19

    使用Ruby on Rails将索引号添加为HTML属性

  20. 20

    如何在模型中使用属性的值?Ruby on Rails

  21. 21

    Ruby on Rails-禁止在params上使用属性?

  22. 22

    Ruby / Rails使用数组项更新模型属性吗?

  23. 23

    为什么我无法在 ruby rails 的视图中访问模型的属性?

  24. 24

    rails:访问表属性并使用group()

  25. 25

    rails:访问表属性并使用group()

  26. 26

    在Ruby on Rails中使用

  27. 27

    Ruby on Rails帮助如何找到方法的来源

  28. 28

    Ruby on Rails“可以找到ID =创建的用户”

  29. 29

    Ruby-on-Rails从Rake任务创建记录

热门标签

归档