ruby-on-rails - 未定义方法 `upload' 用于 nil :NilClass Did you mean? 加载

标签 ruby-on-rails ruby

尝试将 ActiveStorage 用于简单的图像上传表单。它创建成功,但在提交时抛出错误:

undefined method `upload' for nil:NilClass Did you mean? load

这是它要我查看的 block :

    @comment = Comment.create! params.require(:comment).permit(:content)
    @comment.image.attach(params[:comment][:image])
    redirect_to comments_path 
  end

这是在完整的 Controller 中:

class CommentsController < ApplicationController

  def new
    @comment = Comment.new
  end

  def create
    @comment = Comment.create! params.require(:comment).permit(:content)
    @comment.image.attach(params[:comment][:image])
    redirect_to comments_path 
  end

  def show
    @comment = Comment.find(params[:id])
  end
end

实际应该发生的是将您带到页面以查看上传。这里:

# new.html.erb

   <%= form_with model: @comment, local: true  do |form| %>
   <%= form.text_area :content %><br><br>
    <%= form.file_field :image %><br>
   <%= form.submit %>
  <% end %>

 # show.html.erb
   <%= image_tag @comment.image %>

这是评论.rb

class Comment < ApplicationRecord
  has_one_attached :image
end

日志中的错误:

 app/controllers/comments_controller.rb:12:in `create'
 Started POST "/comments" for 127.0.0.1 at 2018-07-15 21:30:23 -0400
 Processing by CommentsController#create as HTML
  Parameters: {"utf8"=>"✓",             "authenticity_token"=>"Al2SdLm1r6RWXQ6SrKNdUTWscSJ4/ha3h8C3xl6GvUsDhBGHkiesvGgyjL         5E1B1eyRUrYyjovFTQaGKwAZ1wtw==", "comment"=>{"content"=>"fdfdfdsdf", "image"=>#       <ActionDispatch::Http::UploadedFile:0xb3d36d8 @tempfile=#<Tempfile:C:/Users/tduke     /AppData/Local/Temp/RackMultipart20180715-3328-10frg81.png>,       @original_filename="9c6f46a506b9ddcb318f3f9ba34bcb27.png",       @content_type="image/png", @headers="Content-Disposition: form-data;    name=\"comment[image]\"; filename=\"9c6f46a506b9ddcb318f3f9ba34bcb27.png     \"\r\nContent-Type: image/png\r\n">}, "commit"=>"Create Comment"}
 Completed 500 Internal Server Error in 468ms (ActiveRecord: 4.0ms)

 NoMethodError (undefined method `upload' for nil:NilClass

你的意思是?负载):

最佳答案

我通过确保在我的环境文件中设置了我的事件存储配置来解决它。

因此,在 development.rb 中,确保行

config.active_storage.service = :local

存在。

关于ruby-on-rails - 未定义方法 `upload' 用于 nil :NilClass Did you mean? 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51353248/

相关文章:

java - JSP Maven 应用程序的类似 Rails 的 Assets 管道解决方案?

ruby - 使用 Rspec 2 和 Mocha 获取 Rails 3 生成器

ruby-on-rails - RSpec 和 Factory 用于测试下一个、上一个记录

ruby-on-rails - nokogiri gem - 错误 : Failed to build gem native extension.

ruby-on-rails - Ruby/Rails 小数点百分比

ruby - 在 Ruby 中,有没有办法找到响应方法调用的类?

ruby-on-rails - 在 ruby​​ 中评估 SCSS (SASS) 模板(Rails 元素)

ruby-on-rails - FactoryGirl 与 Refile gem

ruby-on-rails - 如何调试/修复随机发生的 Redis::TimeoutError?

ruby-on-rails - 获取特定工作日的最接近日期