我正在使用Devise gem进行用户身份验证。用户ID在文章表中作为外键 如何在View_article.html.erb视图中通过User_id获取作者姓名 我可以在show_article.htmlerb
中访问user_id我试图在文章控制器中创建自定义函数,但无法获得所需的输出
答案 0 :(得分:0)
您的Article模型应如下所示:
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或您没有正确定义关系。
答案 1 :(得分:0)
在某些情况下,您的某些文章可能没有任何用户。所以 你可以做
<%= @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或更高版本