ruby-on-rails - 未定义方法 'id' 为 nil :NilClass, Ruby on Rails

标签 ruby-on-rails ruby activerecord

我不断收到此错误,但不知道为什么。

这是我现在的用户 Controller :

def show
    @user = User.find_by(id: params[:id])
end

以及我尝试过的

@user = User.find_by_id(params[:id])

@user  = User.find(params[:id])

我当前的 HTML:

<li><%= link_to "Profile", user_path(@user, show) %></li>

以及我尝试过的:

<li><%= link_to "Profile", user_path(@user) %></li>

<li><%= link_to "Profile", user_path(@user.id) %></li>

<li><%= link_to "Profile", "/users/#{@user.id}" %></li>

<li><%= link_to "Profile", user_path %></li>

<li><%= link_to "Profile", user_show_path %></li>

感谢帮助。谢谢!

rake 动路线 routes

最佳答案

请记住:find_by 可以返回 nil。所以使用前一定要检查一下。

def show
    @user = User.find_by(id: params[:id])
    unless @user
      render status: 404, nothing: true
    end
end

我想这就是你的情况。 find_by 只返回 nil

关于ruby-on-rails - 未定义方法 'id' 为 nil :NilClass, Ruby on Rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33376187/

相关文章:

ruby-on-rails - Rails - 如何从 JSON Web key 获取公钥?

ruby - 如何使用 Nokogiri 从 Ruby 中的 HTML 文档中获取所有节点

ruby - 使用正则表达式的 created_at 查找的 mongoid 不起作用?

ruby-on-rails - 如何在 ERB 上返回 ActiveRecord Association Proxy

mysql - 日期时间的奇怪行为

ruby-on-rails - rails 是否为不涉及 Controller 的操作执行 SQL 缓存?

ruby-on-rails - Array.delete(object) 从数据库中删除?

mysql - rails 4 : ActiveRecord or MySQL query where no related models have attribute

ruby-on-rails - 如何使用 PayPal-Ruby-SDK 为以后的支付生成授权码?

ruby - 在 Ruby 中禁用 OptionParser 标志的自动完成