Как я могу получить имя пользователя в таблице, где user_id используется в качестве внешнего ключа - PullRequest
0 голосов
/ 24 мая 2019

Я использую гем Devise для аутентификации пользователя.Идентификатор пользователя является внешним ключом в таблице статей. Как я могу получить имя автора через идентификатор_пользователя в представлении Show_article.html.erb? Я могу получить доступ к идентификатору пользователя в show_article.htmlerb

Я попытался создать пользовательскую функцию в контроллере статейно не смог получить желаемый результат

Ответы [ 2 ]

0 голосов
/ 24 мая 2019

Возможно, в вашей статье нет пользователя. так Вы можете сделать

<%= @article&.user&.name %> на странице шоу

и на странице указателя

<% @articles.each do |article| %>
    <tr>
      <td><%= article.title %></td>
      <td><%= article.text %></td>
      <td><%= article&.user&.name%></td>
      <td><%= link_to 'Show', article_path(article) %></td>
      <td><%= link_to 'Edit', edit_article_path(article) %></td>
      <td><%= link_to 'Delete', article_path(article),
              method: :delete,
              data: { confirm: 'Are you sure you want to delete this article?' } %></td>
    </tr>
  <% end %>

но убедитесь, что у вас ruby ​​2.3.0 или выше

0 голосов
/ 24 мая 2019

модель вашей статьи должна выглядеть так:

class Article << ActiveRecord::Base
  belongs_to :user
  #....some more lines
end

Ваша модель пользователя должна выглядеть так:

class User << ActiveRecord::Base
  has_many :articles
  #....some more lines
end

и ваш show.html.erb должен сказать:

  #....your rest of code
<%= @article.try(:user).try(:name) %>
  #....your rest of code

Это пропустит имя пользователя, если в вашей статье нет пользователя. Похоже, в вашей статье нет user_id или вы не правильно определили свои отношения.

...