Попробуйте этот метод:
Предполагая, что для маршрутов установлено значение resources: blogs
Ваша таблица в index.html.erb
будет
<table class="responsive nowrap table table-hover" id="dttb-blogs" data-sort="true" data-source="<%= url_for(format: :json)%>">
<thead>
<tr>
<th data-data="title">Title</th>
<th data-data="user_email">User</th>
<th data-data="url" data-orderable="false" data-class-name="all" data-searchable="false" class="skip-export" width="100px"></th>
</tr>
</thead>
</table>
Добавить _blog.json.jbuilder
в блогах
json.extract! blog, :id, :title, :user_id, :created_at, :updated_at
json.user_email blog.user.email
json.url blog_url(blog, format: :json)
Добавить index.json.jbuilder
в блогах
json.set! :data do
json.array! @blogs do |blog|
json.partial! 'blogs/blog', blog: blog
json.url "
#{link_to 'Show', blog }
#{link_to 'Edit', edit_blog_path(blog)}
#{link_to 'Destroy', blog, method: :delete, data: { confirm: 'Are you sure?' }}
"
end
end
Это создаст данные с использованием объекта json, взяв переменную экземпляра @blogs из действия index
и на ваш вопрос, как отобразить электронную почту в столбце пользователя, который находится в пользовательской таблице. Предполагая, что вы связали пользовательскую таблицу с таблицей блогов, т.е.
в модели блогов, у вас должна быть ассоциация:
belongs_to :user
теперь вы получите электронное письмо от пользователя blog.user.email