1

在我的 rails 应用程序的用户个人资料页面上,我收到错误消息:

undefined method `title' for nil:NilClass

我知道这是因为以下 3 行代码:

<% if @user.profile.title %>
     <%= @user.profile.title %>
<% end %>

我不明白为什么。由于我使用if语句,它不应该先检查title是否存在,然后如果它存在则显示它,如果它不存在,它不应该显示它。出了什么问题,我该如何解决?谢谢。

4

3 回答 3

3

因为titleis nil 你不能像你一样测试它。尝试:

<% if @user.profile.try(:title) @user.profile.title %>
于 2013-10-25T17:05:37.113 回答
3

你可以做:

<% if @user.profile.present? %>
  <%= @user.profile.title %>
<% end %>

或尝试:

<%= @user.profile.try(:name) %>

如果没有关联的配置文件,则使用默认值:

<%= @user.profile.try(:name) || 'No profile for this user' %>
于 2013-10-25T17:17:58.083 回答
0

因为它不正确。如果您想从用户那里访问某些参数,则必须使用直接访问。但是,如果您想使用属于 User 模型的配置文件,请查看此 链接

于 2013-10-25T17:06:53.520 回答