Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails回形针错误未定义方法`之前';for false:将图像附着到模型时FalseClass_Ruby On Rails_Ruby_Ruby On Rails 4_Paperclip - Fatal编程技术网

Ruby on rails Rails回形针错误未定义方法`之前';for false:将图像附着到模型时FalseClass

Ruby on rails Rails回形针错误未定义方法`之前';for false:将图像附着到模型时FalseClass,ruby-on-rails,ruby,ruby-on-rails-4,paperclip,Ruby On Rails,Ruby,Ruby On Rails 4,Paperclip,我有一个名为Question的模型,我想用回形针(5.0.0)将文件附加到(图)上。保存模型时,我收到以下错误: undefined method `before' for false:FalseClass 我的模型: class Question < ActiveRecord::Base belongs_to :subject belongs_to :category has_attached_file :diagram validates_attachment_co

我有一个名为Question的模型,我想用回形针(5.0.0)将文件附加到(图)上。保存模型时,我收到以下错误:

undefined method `before' for false:FalseClass
我的模型:

class Question < ActiveRecord::Base
  belongs_to :subject
  belongs_to :category

  has_attached_file :diagram
  validates_attachment_content_type :diagram, :content_type => ["image/jpg", 
    "image/jpeg", "image/png"], if: :hasdiagram

end
我的表格:

<h1 align="center">Add a new question</h1>
  <div class="col-md-4 offset-md-4">
    <%= render 'shared/errors', object: @question %>
    <%= form_for @question, :url => { :controller => 'questions', :action => 'create'}, method: :post do |f| %>

      <div class="form-group" id="diagram-input">
        <%= f.file_field :diagram %>
      </div>

      <%= f.submit "Submit", class: "btn btn-success btn-block" %>
    <% end %>
  </div>
添加新问题
{:controller=>'questions',:action=>'create'},方法::post do | f |%>
任何帮助都将不胜感激,谢谢

整个日志:

Started POST "/admin/add_question" for 10.240.1.4 at 2017-11-12 15:39:10 +0000
Cannot render console from 10.240.1.4! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by QuestionsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"AFcHCrw6Dthasdesh5DNgdsxmFICxxPznyXtPDtxnp8zokpyZSeRHqiGC+K4SBMHehxYBgUXra30KTCj/AxUg==", "question"=>{"subject_id"=>"39", "category_id"=>"1", "hasdiagram"=>"1", "diagram"=>#<ActionDispatch::Http::UploadedFile:0x007f8064f72100 @tempfile=#<Tempfile:/tmp/RackMultipart20171112-8403-ewq7ng.png>, @original_filename="187c38aa17afdc65ba5c1c5239219686.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"question[diagram]\"; filename=\"187c38aa17afdc65ba5c1c5239219686.png\"\r\nContent-Type: image/png\r\n">, "question"=>"a", "option1"=>"a", "option2"=>"a", "option3"=>"a", "option4"=>"a"}, "commit"=>"Submit"}
Command :: file -b --mime '/tmp/c5769bbf6ba9051718d946344886703720171112-8403-1v5gz0n.png'
Completed 500 Internal Server Error in 13ms (ActiveRecord: 0.0ms)

NoMethodError (undefined method `before' for false:FalseClass):
  app/controllers/questions_controller.rb:11:in `create'


  Rendered /usr/local/rvm/gems/ruby-2.3.4/gems/actionpack-4.2.5/lib/action_dispatch/middleware/templates/rescues/_source.erb (6.0ms)
  Rendered /usr/local/rvm/gems/ruby-2.3.4/gems/actionpack-4.2.5/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (2.7ms)
  Rendered /usr/local/rvm/gems/ruby-2.3.4/gems/actionpack-4.2.5/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.2ms)
  Rendered /usr/local/rvm/gems/ruby-2.3.4/gems/actionpack-4.2.5/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (27.9ms)
2017年11月12日15:39:10+0000,10.240.1.4开始发布“/admin/add_question” 无法从10.240.1.4中渲染控制台!允许的网络:127.0.0.1,::1127.0.0.0/127.255.255.255 问题控制器处理#创建为HTML 参数:{“utf8”=>“✓", "真实性令牌“=>”AFcHCrw6Dthasdesh5DNgdsxmFICxxPznyXtPDtxnp8zokpyZSeRHqiGC+K4SBMHehxYBgUXra30KTCj/AxUg=>,“问题”=>,“问题”=>,“主题id”=>“39”,“类别id”=>“1”,“图表”=>,“问题”=>“a”,“选项1”=>“a”,“选项2”=>“a”,“选项3”=>“a”,“选项4”=>“提交”} 命令::文件-b--mime'/tmp/c5769bbf6ba9051718d946344886703720171112-8403-1v5gz0n.png' 在13毫秒内完成500个内部服务器错误(ActiveRecord:0.0毫秒) NoMethodError(未定义false的'before'方法:FalseClass): app/controllers/questions\u controller.rb:11:in'create' Rendered/usr/local/rvm/gems/ruby-2.3.4/gems/actionpack-4.2.5/lib/action\u dispatch/middleware/templates/rescues//u source.erb(6.0ms) Rendered/usr/local/rvm/gems/ruby-2.3.4/gems/actionpack-4.2.5/lib/action\u dispatch/middleware/templates/rescues//u trace.html.erb(2.7ms) Rendered/usr/local/rvm/gems/ruby-2.3.4/gems/actionpack-4.2.5/lib/action\u dispatch/middleware/templates/rescues//u request\u and_response.html.erb(1.2ms) rescues/layout中的Rendered/usr/local/rvm/gems/ruby-2.3.4/gems/actionpack-4.2.5/lib/action\u dispatch/middleware/templates/rescues/diagnostics.html.erb(27.9ms)
表单似乎缺少上载文件时所需的
多部分:true
。更改
表单标签
,如下所示:

<%= form_for @question, 
             url: { controller: 'questions', action: 'create'}, 
             method: :post,
             multipart: true do |f| %>


阅读Rails指南中的更多信息。

@spickermann我添加了整个错误和我所在的表单submitting@spickermann是的,是12号线,我取消了节目action@spickermann好的,我添加了表单提交时的服务器日志,这是我到目前为止得到的信息。错误解释:我唯一能想到的“以前”是您的内容类型验证。有些东西返回false并将其运行到验证中,这将导致此错误。您是否将所有验证都包含在问题中?或者您是否从
问题
模型中删除了零件?谢谢您的回答。我在表单中添加了multipart:true,但它没有删除错误。还有什么我做错的吗?
Started POST "/admin/add_question" for 10.240.1.4 at 2017-11-12 15:39:10 +0000
Cannot render console from 10.240.1.4! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by QuestionsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"AFcHCrw6Dthasdesh5DNgdsxmFICxxPznyXtPDtxnp8zokpyZSeRHqiGC+K4SBMHehxYBgUXra30KTCj/AxUg==", "question"=>{"subject_id"=>"39", "category_id"=>"1", "hasdiagram"=>"1", "diagram"=>#<ActionDispatch::Http::UploadedFile:0x007f8064f72100 @tempfile=#<Tempfile:/tmp/RackMultipart20171112-8403-ewq7ng.png>, @original_filename="187c38aa17afdc65ba5c1c5239219686.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"question[diagram]\"; filename=\"187c38aa17afdc65ba5c1c5239219686.png\"\r\nContent-Type: image/png\r\n">, "question"=>"a", "option1"=>"a", "option2"=>"a", "option3"=>"a", "option4"=>"a"}, "commit"=>"Submit"}
Command :: file -b --mime '/tmp/c5769bbf6ba9051718d946344886703720171112-8403-1v5gz0n.png'
Completed 500 Internal Server Error in 13ms (ActiveRecord: 0.0ms)

NoMethodError (undefined method `before' for false:FalseClass):
  app/controllers/questions_controller.rb:11:in `create'


  Rendered /usr/local/rvm/gems/ruby-2.3.4/gems/actionpack-4.2.5/lib/action_dispatch/middleware/templates/rescues/_source.erb (6.0ms)
  Rendered /usr/local/rvm/gems/ruby-2.3.4/gems/actionpack-4.2.5/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (2.7ms)
  Rendered /usr/local/rvm/gems/ruby-2.3.4/gems/actionpack-4.2.5/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.2ms)
  Rendered /usr/local/rvm/gems/ruby-2.3.4/gems/actionpack-4.2.5/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (27.9ms)
<%= form_for @question, 
             url: { controller: 'questions', action: 'create'}, 
             method: :post,
             multipart: true do |f| %>