我正在更新到rails 5.2中的activestorage并且在我的创建操作中得到一个“未定义的方法`[] ='为nil:NilClass” . 我认为问题与我列入白名单的params有关 . 我试图按照指南,但仍然无法弄清楚我错过了什么 .

我的模型有has_many_attached:图像我的控制器有

def create
    @product = Product.new(product_params)
    @product.images.attach(params[:product][:images])

    if @product.save
      redirect_to @product, notice: 'Product was successfully created.'
    else
      render :new
    end
  end
private
    def product_params
      params.require(:product).permit(:name, :description, :category_id, :tag_list, :partialone, :partialtwo, :partialthree, :shape, :earrings, :metalweight, :sizeone, :sizetwo, :metal, :totalweightone, :totalweighttwo, :meleequant, review_attributes: [:id, :rating, :text, :author, :name], images: [] )
    end

以下是完整的跟踪:acts-as-taggable-on(5.0.0)lib / acts_as_taggable_on / taggable / core.rb:206:in process_dirty_object' acts-as-taggable-on (5.0.0) lib/acts_as_taggable_on/taggable/core.rb:184:in set_tag_list_on'mestact-as-taggable-on(5.0.0)lib / acts_as_taggable_on / taggable / core.rb:45:in tag_list=' activemodel (5.2.1) lib/active_model/attribute_assignment.rb:51:in public_send'activemodel(5.2.1)lib / active_model / attribute_assignment.rb:51:in-2899900_ block in _assign_attributes'activemodel(5.2.1)lib / active_model / attribute_assignment.rb:43: in each' activemodel (5.2.1) lib/active_model/attribute_assignment.rb:43:in _assign_attributes'activerecord(5.2.1)lib / active_record / attribute_assignment.rb:23:in _assign_attributes' activemodel (5.2.1) lib/active_model/attribute_assignment.rb:35:in assign_attributes'activerecord(5.2.1)lib / active_record / core.rb:314:in initialize' activerecord (5.2.1) lib/active_record/inheritance.rb:66:in new'activerecord(5.2.1) lib / active_record / inheritance.rb:66:in new' activerecord (5.2.1) lib/active_record/persistence.rb:52:in create!' app / controllers / products_controller.rb:65:in create' actionpack (5.2.1) lib/action_controller/metal/basic_implicit_render.rb:6:in send_action'actionpack(5.2.1)lib / abstract_controller / base.rb:194:in process_action' actionpack (5.2.1) lib/action_controller/metal/rendering.rb:30:in process_action'actionpack(5.2.1)lib / abstract_controller / callbacks.rb:42:在 block in process_action' activesupport (5.2.1) lib/active_support/callbacks.rb:132:in run_callbacks'actionpack(5.2.1)lib / abstract_controller / callbacks.rb:41:in process_action' actionpack (5.2.1) lib/action_controller/metal/rescue.rb:22:in process_action'actionpack(5.2.1)lib / action_controller / metal / instrumentation.rb:34:in block in process_action' activesupport (5.2.1) lib/active_support/notifications.rb:168:in block in instrument'activesupport( 5.2.1)lib / active_support / notifications / instrumenter.rb:23:在 instrument' activesupport (5.2.1) lib/active_support/notifications.rb:168:in instrument'actionpack(5.2.1)lib / action_controller / metal / instrumentation.rb:32:in process_action' actionpack (5.2.1) lib/action_controller/metal/params_wrapper.rb:256:in process_action'activerecord(5.2.1)lib / active_record / railties / controller_runtime.rb:24:in process_action' actionpack (5.2.1) lib/abstract_controller/base.rb:134:in process'actionview(5.2.1)lib / action_view / rendering.rb:32:in process' actionpack (5.2.1) lib/action_controller/metal.rb:191:in dispatch'actionpack(5.2.1)lib / action_controller / metal.rb:252:在 dispatch' actionpack (5.2.1) lib/action_dispatch/routing/route_set.rb:52:in dispatch'actionpack(5.2.1)lib / action_dispatch / routing / route_set.rb:34:in serve' actionpack (5.2.1) lib/action_dispatch/journey/router.rb:52:in block in serve'actionpack(5.2.1)lib / a ction_dispatch / journey / router.rb:35:在 each' actionpack (5.2.1) lib/action_dispatch/journey/router.rb:35:in serve'actionpack(5.2.1)lib / action_dispatch / routing / route_set.rb:840:在 call' warden (1.2.7) lib/warden/manager.rb:36:in 块中调用'warden(1.2.7)lib / warden / manager . rb:35:在 catch' warden (1.2.7) lib/warden/manager.rb:35:in 中调用'rack(2.0.5)lib / rack / tempfile_reaper.rb:15:在 call' rack (2.0.5) lib/rack/etag.rb:25:in 中调用'rack(2.0.5)lib / rack / conditional_get.rb:38:in call' rack (2.0.5) lib/rack/head.rb:12:in call'actionpack( 5.2.1)lib / action_dispatch / http / content_security_policy.rb:18:in call' rack (2.0.5) lib/rack/session/abstract/id.rb:232:in context'cham(2.0.5)lib / rack / session / abstract / id.rb:226:in call' actionpack (5.2.1) lib/action_dispatch/middleware/cookies.rb:670:in call'activerecord(5.2.1) lib / active_record / migration.rb:559:在 call' actionpack (5.2.1) lib/action_dispatch/middleware/callbacks.rb:28:in 块中调用'activesupport(5.2.1)lib / active_support / callbacks.rb:98:in run_callbacks' actionpack (5.2.1) lib/action_dispatch/middleware/callbacks.rb:26:in 调用'actionpack(5.2.1)lib / action_dispatch / middleware / executor . rb:14:在 call' actionpack (5.2.1) lib/action_dispatch/middleware/debug_exceptions.rb:61:in 中调用'web-console(3.5.1)lib / web_console / middleware.rb:135:在 call_app' web-console (3.5.1) lib/web_console/middleware.rb:28:in 块中调用'web-console(3.5.1)lib / web_console / middleware.rb:18:在 catch' web-console (3.5.1) lib/web_console/middleware.rb:18:in 中调用'actionpack(5.2.1)lib / action_dispatch / middleware / show_exceptions.rb:33:in call' railties (5.2.1) lib/rails/rack/logger.rb:38:in call_ap p'railties(5.2.1)lib / rails / rack / logger.rb:26:in block in call' activesupport (5.2.1) lib/active_support/tagged_logging.rb:71:in block in tagged'activesupport(5.2.1)lib / active_support / tagged_logging.rb:28:in tagged' activesupport (5.2.1) lib/active_support/tagged_logging.rb:71:in tagged'railties(5.2 . 1)lib / rails / rack / logger.rb:26:in call' sprockets-rails (3.2.1) lib/sprockets/rails/quiet_assets.rb:13:in call'actionpack(5.2.1)lib / action_dispatch / middleware / remote_ip.rb:81:in call' request_store (1.4.1) lib/request_store/middleware.rb:19:in call'actionpack(5.2.1)lib / action_dispatch / middleware / request_id.rb:27:in call' rack (2.0.5) lib/rack/method_override.rb:22:in call' rack(2.0.5)lib / rack / runtime.rb:22:in call' activesupport (5.2.1) lib/active_support/cache/strategy/local_cache_middleware.rb:29:in call'actionpack(5.2.1)lib / action_dispatch / middleware / executor.rb:14:在 call' actionpack (5.2.1) lib/action_dispatch/middleware/static.rb:127:in 调用'机架(2.0.5)lib / rack / sendfile.rb:111:在 call' webpacker (3.5.5) lib/webpacker/dev_server_proxy.rb:22:in perform_request' rack-proxy(0.6.4)lib / rack / proxy.rb:57:in call' railties (5.2.1) lib/rails/engine.rb:524:in call' rack(2.0 . 5)lib / rack / handler / webrick.rb:86:in service' /Users/Joseph/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/httpserver.rb:140:in service'/Users/Joseph/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/httpserver.rb:96:在start_thread的 run' /Users/Joseph/.rvm/rubies/ruby-2.4.0/lib/ruby/2.4.0/webrick/server.rb:290:in 块中

出于某种原因,我认为问题在于白名单中的“图像:[]”,但我不确定 . 有任何想法吗?谢谢 .