簡體   English   中英

ActionController :: Parameters重復鍵

[英]ActionController::Parameters duplicated key

以下代碼片段來自我的一個控制器:

Class Admin::Portfolios::PortfoliosController < Comfy::Admin::Cms::BaseControllers

  def create
    uploader = PortfolioUploader.new
    uploader.store!(params[:portfolio][:thumbnail])

    @portfolio.save!
    flash[:notice] = 'Portfolio item saved!'
    redirect_to :action => :index
  rescue ActiveRecord::RecordInvalid
    flash.now[:error] = 'Error saving portfolio item'
    render :action => :new
  end

在開發模式下,在控制器的請求參數中設置了params[:portfolio][:thumbnail] 但是,在生產模式下,將設置params[:portfolio_portfolio][:thumbnail]

我正在使用form_for(@portfolio)並且在開發中,所有表單字段名稱在生產模式下均為form_for(@portfolio) portfolio[name]form_for(@portfolio) portfolio_portfolio[name] 請參閱下面的erb。

<%= form_for @portfolio, :url => {:action => :create}, :html => {:multipart => true} do |form| %>
    <% render :partial => form %>
<% end %>

誰能解釋為什么會這樣?

問題在於我的應用程序結構

app
├── controllers
├── helpers
├── mailers
├── models
│   ├── portfolio
│   │   └── portfolio.rb
│   ├── portfolio.rb
└──

form_form查找:as選項以用作表單和字段名稱。 如果沒有通過:as選項,它將執行model_name_from_record_or_class ,它會按照提示說。 模型目錄中較高位置的portfolio.rb類應該不存在,並且為空類。

由於Portfolio類是已經定義的類Portfolio::Portfolio ,轉化portfolio_portfolio

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM