- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在努力解决这个错误。我有一个像这样的 Controller Action :
def import
InventoryItem.import_list(params[:file], current_vendor.id)
redirect_to vendors_dashboard_path, notice: "Inventory Imported"
end
我的类方法:
class << self
def import_list(file, vendor_id)
vendor = Vendor.find(vendor_id)
SmarterCSV.process(file.path,
{:key_mapping => { vendor.import_preference.brand_symbol => :brand,
vendor.import_preference.product_symbol => :product,
vendor.import_preference.price_symbol => :price,
vendor.import_preference.upc_symbol => :upc}}) do |row|
params = row.first.merge(:store_id => vendor.stores.first.id)
inventory_item = InventoryItem.create(params)
end
end
handle_asynchronously :import_list
end
当我尝试执行时,我得到未定义的方法错误。此方法无需调用 handle_asynchronously
即可工作,并且当我将其设为普通的 self.import
类方法时。我在这里做错了什么?
*更新**
服务器错误日志:
Started POST "/inventory_items/import" for 127.0.0.1 at 2014-10-06 09:30:53 -0700
Processing by InventoryItemsController#import as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "file"=>#<ActionDispatch::Http::UploadedFile:0x000001081d3ab8 @original_filename="Inventory1 - Sheet1.csv", @content_type="text/csv", @headers="Content-Disposition: form-data; name=\"file\"; filename=\"Inventory1 - Sheet1.csv\"\r\nContent-Type: text/csv\r\n", @tempfile=#<Tempfile:/var/folders/6Q/6Qj+aFh4A4orYbGW-nE+++TI/-Tmp-/RackMultipart201406-65416-1dcpxp9>>, "commit"=>"Import"}
Vendor Load (0.9ms) SELECT "vendors".* FROM "vendors" WHERE "vendors"."id" = 25 LIMIT 1
Completed 500 Internal Server Error in 99ms
NoMethodError (undefined method `name' for nil:NilClass):
app/controllers/inventory_items_controller.rb:6:in `import'
相关堆栈跟踪:
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:50:in `block in initialize'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:52:in `yield'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:52:in `block in initialize'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:52:in `yield'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:52:in `block in initialize'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:52:in `yield'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:52:in `block in initialize'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:52:in `yield'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:52:in `block in initialize'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:128:in `yield'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:128:in `accept'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:480:in `block in dump_ivars'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:478:in `each'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:478:in `dump_ivars'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:150:in `visit_Object'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:128:in `accept'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:344:in `block in visit_Array'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:344:in `each'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:344:in `visit_Array'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:128:in `accept'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:467:in `block in emit_coder'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:465:in `each'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:465:in `emit_coder'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:450:in `dump_coder'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:126:in `accept'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb:92:in `push'
/Users/myname/.rvm/rubies/ruby-2.0.0-p576/lib/ruby/2.0.0/psych.rb:244:in `dump'
delayed_job (4.0.4) lib/delayed/backend/base.rb:81:in `payload_object='
activerecord (3.2.13) lib/active_record/attribute_assignment.rb:85:in `block in assign_attributes'
activerecord (3.2.13) lib/active_record/attribute_assignment.rb:78:in `each'
activerecord (3.2.13) lib/active_record/attribute_assignment.rb:78:in `assign_attributes'
activerecord (3.2.13) lib/active_record/base.rb:498:in `initialize'
delayed_job (4.0.4) lib/delayed/backend/base.rb:32:in `new'
delayed_job (4.0.4) lib/delayed/backend/base.rb:32:in `enqueue'
delayed_job (4.0.4) lib/delayed/message_sending.rb:12:in `method_missing'
delayed_job (4.0.4) lib/delayed/message_sending.rb:46:in `block in handle_asynchronously'
actionpack (3.2.13) lib/action_controller/metal/implicit_render.rb:4:in `send_action'
最佳答案
params[:file]
在为delayed_job 保存到数据库时将无法正确编码。不要将 params[:file]
对象作为第一个参数传递,而是传递文件路径:
def import
InventoryItem.import_list(params[:file].path, current_vendor.id)
redirect_to vendors_dashboard_path, notice: "Inventory Imported"
end
然后直接在你的worker方法中使用路径:
class << self
def import_list(path, vendor_id)
vendor = Vendor.find(vendor_id)
SmarterCSV.process(path, {:key_mapping => { vendor.import_preference.brand_symbol => :brand, vendor.import_preference.product_symbol => :product, vendor.import_preference.price_symbol => :price, vendor.import_preference.upc_symbol => :upc}}) do |row|
params = row.first.merge(:store_id => vendor.stores.first.id)
inventory_item = InventoryItem.create(params)
end
end
handle_asynchronously :import_list
end
关于ruby-on-rails - 延迟作业 - 未定义的方法 `name' 用于 nil :NilClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26171707/
我正在尝试为应用程序扩展 Ruby 的 NilClass,以便任何方法调用都将返回 nil(实际上是 self,新的扩展 nil)。目的是避免大量额外的 nil 检查逻辑,例如, results =
我正在尝试使用Rails应用程序中的devise来授予对Rack中间件中的Sinatra应用程序的访问权限。 我的config/routes.rb有: authenticate "admin" do
我使用 dbf gem 从 df 文件中读取数据。我写了一些代码: # encoding: UTF-8 require 'dbf' widgets = DBF::Table.n
我试图避免由于 NilClass 而导致的 NoMethod 错误。我的代码如下所示: @branded, @nonbranded, @unknown, @affiliate, @social, @r
我使用的是 rails 2.3.5 和 ruby 1.8.7。我正在构建一个简单的 TODO 管理器。我有属于用户的任务,而用户有很多任务。 我使用 acts_as_taggable_on_ste
上下文 - 我们有大量的 Chef 属性来执行我们的安装,现在已经为每个环境定义和更改了大约 3000 多个属性。 问题 - 有时 Chef Recipe 会引用不存在的属性 node[:mystuf
我目前使用的是: 20: Status: 但是,我仍然收到以下错误: ActionView::TemplateError (undefined method `status' for
请找到代码的一部分: button = Login_form.button_with(:name => 'Submit') loggedin_page = Login_form.submit(butt
NoMethodError位于/ nil:NilClass的未定义方法`page_media' indexapp/controllers/homepage_controller.rb before
正如我们所知,(几乎)Ruby 中的一切都是一个对象,它是一个类的实例。 nil 也是一个对象: 2.1.3 :016 > nil.object_id => 8 它是 NilClass 的一个实例:
我在 User#index 中有这段代码查看: 返回用户名: user1 user2 user3 ... 然后我将此代码移至 UserHelper : module UserHelper
我的目标是制作一个投票机,将候选人的选票计入总数。最终我想添加写入候选人的选项,但我遇到了这个错误: undefined method 'push' for nil:NilClass) at line
编辑 |或者另一个关于同一 object 主题的问题。我可以编写自己的类定义来使以下所有内容正常工作吗? o = WeirdObject.new puts "Object o evaluates as
这似乎是一个显而易见的问题,但我是新手。我正在尝试抓取 Rotten Tomatoes top 100 movie一个简单的 CLI 应用程序的列表。一切顺利,直到 hero.link 行我得到了 n
感谢您回答我之前的问题,但我遇到了一个新问题。 我正在创建一个自定义验证器,用于验证用户是否输入了干净的单词。这个在我的 UsersController 上用作验证方法。 我正在使用 Obscenit
我现在被这个错误困住了很长一段时间,已经走到了死胡同。 我得到了这个完全无用的错误 can't dup NilClass 情况是这样的。 我有一个类(class)与另一个类(class)有关系。说
我知道这是一百万次,但尝试了一切,我仍然收到此错误: $ rake db:migrate rake aborted! undefined method `accept' for nil:NilClas
Controller def show @dailies = Daily.where(store_id: params[:store]).order(created_at: :asc).by_mo
有人能帮我解决这个错误吗? NoMethodError in Posts#create Showing C:/Users/User/Documents/website/app/views/posts/
我有一个类似于这里的问题的问题,但删除数据库对我的项目来说不是一个可行的解决方案:Rails 5.2 ActiveStorage undefined method `signed_id' for ni
我是一名优秀的程序员,十分优秀!