Rails将属性添加到活动记录结果

时间:2018-05-16 13:03:26

标签: ruby-on-rails

我有一个模型Menu

在我的索引操作中我想返回Menu.all但我想通过调用menu.parent_id

为每个菜单添加一个新的属性/值

我正在尝试这样的事情: @menus = Menu.all.map {|m| m.parent_id}

但是这只给了我parent_id,我需要菜单对象和父ID。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您不需要添加属性。 ActiveRecord 模型id包含Menu属性,当您遍历它们时,您可以正常调用该属性。

在您的控制器中:

parent_id

然后在你看来:

@menus = Menu.all

或者,如果您输出JSON:

<% @menus.each do |menu| %>
  <% # do stuff %>
  <%= menu.parent_id # output parent id %>
  <% # do more stuff %>
<% end %>

或者,如果您想直接在控制器中输出渲染而不使用视图:

json.array!(@menus) do |menu|
  json.extract! menu, :id, :parent_id, :more_stuff
end