首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Heroku only错误:在Heroku上的Rails中未定义方法`write_from_user‘,但在dev中一切正常

Heroku only错误:在Heroku上的Rails中未定义方法`write_from_user‘,但在dev中一切正常
EN

Stack Overflow用户
提问于 2016-11-01 13:24:19
回答 2查看 1.2K关注 0票数 0

当我尝试在Heroku prod环境中使用强参数提交表单时出现错误。应用程序日志显示以下内容:

代码语言:javascript
复制
2016-11-01T05:20:15.948227+00:00 app[web.1]: [7a7a60bf-b9bf-404d-890e-3692ba99bad0] Completed 500 Internal Server Error in 12ms (ActiveRecord: 2.8ms)
2016-11-01T05:20:15.949267+00:00 app[web.1]: [7a7a60bf-b9bf-404d-890e-3692ba99bad0]   
2016-11-01T05:20:15.949316+00:00 app[web.1]: [7a7a60bf-b9bf-404d-890e-3692ba99bad0] NoMethodError (undefined method `write_from_user' for nil:NilClass):
2016-11-01T05:20:15.949353+00:00 app[web.1]: [7a7a60bf-b9bf-404d-890e-3692ba99bad0]   
2016-11-01T05:20:15.949490+00:00 app[web.1]: [7a7a60bf-b9bf-404d-890e-3692ba99bad0] app/controllers/gdrs_controller.rb:12:in `create'

我在dev和prod中使用Rails5和postgres db。在dev中,一切都运行得很完美。Heroku传递url参数的方式有什么不同吗?

下面是我的create操作代码:

代码语言:javascript
复制
def create
  @des = Designer.where(email: Rails.application.secrets.design_lead_email)
  @gdr = Gdr.new(secure_params)
  @gdr[:uuid] = SecureRandom.hex(5)
  @gdr.designer = @des
  @gdr[:status] = "Queued"
  if @gdr.save!
    VisitorMailer.gdr_created_email(@gdr).deliver_now
    DesignerMailer.gdr_created_email(@gdr).deliver_now
    redirect_to gdr_url(@gdr[:uuid])
  else
    render :new
  end
end

和secure_params操作:

代码语言:javascript
复制
private

def secure_params
    params.require(:gdr).permit(:uuid, :client_name, :email, :dept, :ext, :cost_centre, :activity_type, :project_name, :description, :size, :quantity, :colour, :quote, :rush, :rush_desc, :proof_date, :print_date, :delivery_instructions, :reprint, :old_gl, :server_path_to_files, :activity_code) 
end

我正在使用Devise创建Designer模型。

EN

回答 2

Stack Overflow用户

发布于 2016-11-01 14:26:45

看起来你在尝试呼叫nil object上的write_from_user。使用像这样的your_object.try(: write_from_user)来处理nil。如果你可以发布你的控制器代码,它会变得更加清晰。

票数 0
EN

Stack Overflow用户

发布于 2016-11-05 21:34:01

修好了!我意识到创建操作正在失败,因为我没有正确配置actionmailer。我想它是在数据库提交的中途崩溃的。

我们从中吸取了教训。现在打开了全局错误日志记录。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40354538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档