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



我有一个模型Menu

在我的索引操作中,我想返回 Menu.all,但我想通过调用 menu.parent_id 为每个菜单添加一个新属性/值

我正在尝试类似的东西:@menus = Menu.all.map {|m| m.parent_id}

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

我该怎么做?

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

在控制器中:

@menus = Menu.all

那么在您看来:

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

或者,如果要输出 JSON:

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

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

render json: @menus

最新更新