【问题标题】:Getting undefined method `builder_photo' for nil:NilClass error为 nil:NilClass 错误获取未定义的方法“builder_photo”
【发布时间】:2023-03-18 09:20:02
【问题描述】:

我有一个存储在数据库表构建器中的构建器配置文件图像。

我想在导航栏中显示current_user 图像,它是构建者的个人资料图像。

我用过的Sp。

<%= image_tag(@builder.builder_photo.url, class: 'builder-img') %>

这显示了正确的个人资料图片

  • http://localhost:3000/api/v1/builders/:id/edit

但在其他页面上显示错误

nil:NilClass 的未定义方法 `builder_photo'

我是 Rails 新手。请有人帮我解决这个问题。

【问题讨论】:

    标签: ruby-on-rails ruby methods paperclip grails-controller


    【解决方案1】:

    这是您可以在 rails 中找到的最常见错误之一。任何时候你看到这种格式: undefined method * builder_photo* for nil:NilClass,这意味着 @builder 是 nil (当然 nil 没有 builder_photo 方法)。 这个@builder 变量是在哪里定义的?

    通常你在控制器文件中设置这样的变量,例如:

    class CarsController < BaseController
      def index
        @builder = Builder.new(a: 1, b: 2)
      end
    end
    

    【讨论】:

    • 我的构建器在 app/controllers/api/v1/builders_controller.rb 中定义,但我希望每个页面中的 builder_upload def edit @builder = Api::V1::Builder.find(params[: id]) 结束,这是我的控制器方法
    • 你必须在你需要的所有动作(页面)中定义这个@builder。
    • 问题出在我的图片标签上。我正在使用返回零的@builder.builder_photo.url。但我应该使用 current_user['builder_photo']。现在它固定了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    • 2012-12-27
    • 2015-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多