Rails добавляет атрибут к результату активной записи - PullRequest
0 голосов
/ 16 мая 2018

У меня есть модель Menu

в моем действии index я хочу вернуть Menu.all, но я хочу добавить к этому новый атрибут / значение для каждого меню, вызвав menu.parent_id

Я пытался что-то вроде: @menus = Menu.all.map {|m| m.parent_id}

но это ТОЛЬКО дает мне parent_id, мне нужен объект меню и идентификатор родителя.

Как я могу это сделать?

1 Ответ

0 голосов
/ 16 мая 2018

Вам не нужно добавлять атрибут. 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...