2013-10-13 120 views
2

我收到的唯一的生產錯誤,指出「符號轉換成String的任何隱式轉換」:Rails的4只在生產

TypeError (no implicit conversion of Symbol into String): 
app/controllers/products_controller.rb:15:in `create' 

下面是來自products_controller.rb文件中的相關代碼(注意線在問題下面是2號線)

def create 
    @product = @category.products.build(product_params) 
    if @product.save 
    flash[:success] = "Product successfully created" 
    redirect_to [@category, @product] 
    else 
    flash[:alert] = "Product not created" 
    render 'new' 
    end 
end 

private 

    def product_params 
    params.require(:product).permit(:name, :description, :url, :category_id, :picture, :price, :social_image) 
    end 

此代碼目前可用於開發和測試環境很好,以前在生產工作(會解釋,因爲低於去年的工作生產版本的變化)。我已經使用diff工具來確認Gemfile.lock在本地和生產機器之間是相同的,以消除這個方面。

注:我以前有文件上傳使用如被看見在的回形針創業板工作:圖片PARAM,但是我最近列入了該模型中,第二個文件上傳(:social_image),並切換上傳方法到Amazon S3通過aws-sdk gem而不僅僅是生產服務器。另外,我已經確認在development.rb和production.rb之間的所有相關設置都是正確的。

的PARAMS該請求可以在下面找到:

{"utf8"=>"✓", 
"authenticity_token"=>"yJJ1HwLZz9oDmsfUfN87DATCe+HC9IBhYVBddRvm4=", 
"product"=>{"name"=>"Heineken Style USB Flash Drive", 
"description"=>"Sample Description.", 
"url"=>"http://www.amazon.com/", 
"category_id"=>"1", 
"price"=>"7.99", 
"picture"=>#<ActionDispatch::Http::UploadedFile:0x00000004986260 @tempfile=#<Tempfile:/tmp/RackMultipart20131013-3068-fyjvy2>, 
@original_filename="heineken-usb-drive-stock.jpg", 
@content_type="image/jpeg", 
@headers="Content-Disposition: form-data; name=\"product[picture]\"; filename=\"heineken-usb-drive-stock.jpg\"\r\nContent-Type: image/jpeg\r\n">, 
"social_image"=>#<ActionDispatch::Http::UploadedFile:0x000000049861c0 @tempfile=#<Tempfile:/tmp/RackMultipart20131013-3068-1glzf9p>, 
@original_filename="heineken-usb-drive.png", 
@content_type="image/png", 
@headers="Content-Disposition: form-data; name=\"product[social_image]\"; filename=\"heineken-usb-drive.png\"\r\nContent-Type: image/png\r\n">}, 
"commit"=>"Create Product", 
"category_id"=>"geeky"} 

我已經包含下面的堆疊軌道以及爲每個人的參考:

paperclip (3.5.1) lib/paperclip/storage/s3.rb:141:in `gsub' 
paperclip (3.5.1) lib/paperclip/storage/s3.rb:141:in `block in extended' 
paperclip (3.5.1) lib/paperclip/storage/s3.rb:117:in `instance_eval' 
paperclip (3.5.1) lib/paperclip/storage/s3.rb:117:in `extended' 
paperclip (3.5.1) lib/paperclip/attachment.rb:390:in `extend' 
paperclip (3.5.1) lib/paperclip/attachment.rb:390:in `initialize_storage' 
paperclip (3.5.1) lib/paperclip/attachment.rb:85:in `initialize' 
paperclip (3.5.1) lib/paperclip/has_attached_file.rb:46:in `new' 
paperclip (3.5.1) lib/paperclip/has_attached_file.rb:46:in `block in define_instance_getter' 
paperclip (3.5.1) lib/paperclip/has_attached_file.rb:65:in `block in define_setter' 
activerecord (4.0.0) lib/active_record/attribute_assignment.rb:42:in `public_send' 
activerecord (4.0.0) lib/active_record/attribute_assignment.rb:42:in `_assign_attribute' 
activerecord (4.0.0) lib/active_record/attribute_assignment.rb:29:in `block in assign_attributes' 
activerecord (4.0.0) lib/active_record/attribute_assignment.rb:23:in `each' 
activerecord (4.0.0) lib/active_record/attribute_assignment.rb:23:in `assign_attributes' 
activerecord (4.0.0) lib/active_record/core.rb:192:in `initialize' 
activerecord (4.0.0) lib/active_record/inheritance.rb:27:in `new' 
activerecord (4.0.0) lib/active_record/inheritance.rb:27:in `new' 
activerecord (4.0.0) lib/active_record/reflection.rb:189:in `build_association' 
activerecord (4.0.0) lib/active_record/associations/association.rb:242:in `build_record' 
activerecord (4.0.0) lib/active_record/associations/collection_association.rb:114:in `build' 
activerecord (4.0.0) lib/active_record/associations/collection_proxy.rb:229:in `build' 
app/controllers/products_controller.rb:16:in `create' 
actionpack (4.0.0) lib/action_controller/metal/implicit_render.rb:4:in `send_action' 
actionpack (4.0.0) lib/abstract_controller/base.rb:189:in `process_action' 
actionpack (4.0.0) lib/action_controller/metal/rendering.rb:10:in `process_action' 
actionpack (4.0.0) lib/abstract_controller/callbacks.rb:18:in `block in process_action' 
activesupport (4.0.0) lib/active_support/callbacks.rb:443:in `_run__3726568038748606890__process_action__callbacks' 
activesupport (4.0.0) lib/active_support/callbacks.rb:80:in `run_callbacks' 
actionpack (4.0.0) lib/abstract_controller/callbacks.rb:17:in `process_action' 
actionpack (4.0.0) lib/action_controller/metal/rescue.rb:29:in `process_action' 
actionpack (4.0.0) lib/action_controller/metal/instrumentation.rb:31:in `block in process_action' 
activesupport (4.0.0) lib/active_support/notifications.rb:159:in `block in instrument' 
activesupport (4.0.0) lib/active_support/notifications/instrumenter.rb:20:in `instrument' 
activesupport (4.0.0) lib/active_support/notifications.rb:159:in `instrument' 
actionpack (4.0.0) lib/action_controller/metal/instrumentation.rb:30:in `process_action' 
actionpack (4.0.0) lib/action_controller/metal/params_wrapper.rb:245:in `process_action' 
activerecord (4.0.0) lib/active_record/railties/controller_runtime.rb:18:in `process_action' 
actionpack (4.0.0) lib/abstract_controller/base.rb:136:in `process' 
actionpack (4.0.0) lib/abstract_controller/rendering.rb:44:in `process' 
actionpack (4.0.0) lib/action_controller/metal.rb:195:in `dispatch' 
actionpack (4.0.0) lib/action_controller/metal/rack_delegation.rb:13:in `dispatch' 
actionpack (4.0.0) lib/action_controller/metal.rb:231:in `block in action' 
actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:80:in `call' 
actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:80:in `dispatch' 
actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:48:in `call' 
actionpack (4.0.0) lib/action_dispatch/journey/router.rb:71:in `block in call' 
actionpack (4.0.0) lib/action_dispatch/journey/router.rb:59:in `each' 
actionpack (4.0.0) lib/action_dispatch/journey/router.rb:59:in `call' 
actionpack (4.0.0) lib/action_dispatch/routing/route_set.rb:655:in `call' 
warden (1.2.3) lib/warden/manager.rb:35:in `block in call' 
warden (1.2.3) lib/warden/manager.rb:34:in `catch' 
warden (1.2.3) lib/warden/manager.rb:34:in `call' 
rack (1.5.2) lib/rack/etag.rb:23:in `call' 
rack (1.5.2) lib/rack/conditionalget.rb:35:in `call' 
rack (1.5.2) lib/rack/head.rb:11:in `call' 
actionpack (4.0.0) lib/action_dispatch/middleware/params_parser.rb:27:in `call' 
actionpack (4.0.0) lib/action_dispatch/middleware/flash.rb:241:in `call' 
rack (1.5.2) lib/rack/session/abstract/id.rb:225:in `context' 
rack (1.5.2) lib/rack/session/abstract/id.rb:220:in `call' 
actionpack (4.0.0) lib/action_dispatch/middleware/cookies.rb:486:in `call' 
activerecord (4.0.0) lib/active_record/query_cache.rb:36:in `call' 
activerecord (4.0.0) lib/active_record/connection_adapters/abstract/connection_pool.rb:626:in `call' 
actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:29:in `block in call' 
activesupport (4.0.0) lib/active_support/callbacks.rb:373:in `_run__1565355437262191815__call__callbacks' 
activesupport (4.0.0) lib/active_support/callbacks.rb:80:in `run_callbacks' 
actionpack (4.0.0) lib/action_dispatch/middleware/callbacks.rb:27:in `call' 
actionpack (4.0.0) lib/action_dispatch/middleware/remote_ip.rb:76:in `call' 
actionpack (4.0.0) lib/action_dispatch/middleware/debug_exceptions.rb:17:in `call' 
actionpack (4.0.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call' 
railties (4.0.0) lib/rails/rack/logger.rb:38:in `call_app' 
railties (4.0.0) lib/rails/rack/logger.rb:21:in `block in call' 
activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `block in tagged' 
activesupport (4.0.0) lib/active_support/tagged_logging.rb:25:in `tagged' 
activesupport (4.0.0) lib/active_support/tagged_logging.rb:67:in `tagged' 
railties (4.0.0) lib/rails/rack/logger.rb:21:in `call' 
actionpack (4.0.0) lib/action_dispatch/middleware/request_id.rb:21:in `call' 
rack (1.5.2) lib/rack/methodoverride.rb:21:in `call' 
rack (1.5.2) lib/rack/runtime.rb:17:in `call' 
activesupport (4.0.0) lib/active_support/cache/strategy/local_cache.rb:83:in `call' 
rack (1.5.2) lib/rack/sendfile.rb:112:in `call' 
railties (4.0.0) lib/rails/engine.rb:511:in `call' 
railties (4.0.0) lib/rails/application.rb:97:in `call' 
/home/application/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.16/lib/phusion_passenger/rack/thread_handler_extension.rb:77:in `process_request' 
/home/application/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.16/lib/phusion_passenger/request_handler/thread_handler.rb:140:in `accept_and_process_next_request' 
/home/application/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.16/lib/phusion_passenger/request_handler/thread_handler.rb:108:in `main_loop' 
/home/application/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.16/lib/phusion_passenger/request_handler.rb:441:in `block (3 levels) in start_threads' 

最後的完整代碼庫可在:https://github.com/mhoad/there-goes-my-paycheck/tree/deployment任何人都希望查看任何其他文件。

任何幫助,這將是主要讚賞!在此先感謝

回答

5

在您的production.rb文件中,回形針配置爲:url => :s3_domain_url,而在dev中它是:url => ':s3_domain_url'(注意引號)。看起來好像你可以將整個config.paperclip_defaults移動到application.rb,所以即使在某些事情發生變化時也可以保證相同的設置。

感謝您發佈一個鏈接到回購,順便說一句 - 更容易發現這些東西,當你可以看到整個應用程序。

+1

不是問題我認爲這是我能做的最少的事,任何人都會花時間幫助我。當我說我已經檢查過這些文件是正確的時,也要非常感謝我的聲音。我一直堅持這幾個小時,而且我深深地注意到這麼小的事情。 – Mhoad