9

ここに新しい ROR プログラマーがいます。ユーザーが会社情報を入力するフォームに入力できる Web アプリケーションを構築しようとしています。[送信] をクリックすると、データベースに入力が追加されます。

現時点では、ユーザーが新しいエントリを作成すると、「会社名」などのいくつかのフィールドが表示されます。新しい会社を入力するための空白のボックスがあり、その隣には、ユーザーがデータベース内の既存の会社を表示するために使用できるドロップダウン メニューがあります。

<div class="field">
<%= f.label :company_name %><br />
<%= f.text_field :company_name %>

<%= f.label :company_name %><br />
<%= f.select( :company_name, Company.all.map {|p| [p.company_name]}.uniq!, :prompt => "Select a Company") %>

ユーザーが新しい会社を入力できるようにする方法を探しています。または、ドロップダウン メニューをクリックして既存の会社を選択します。

現在: テキストボックスに何も入力されておらず、ドロップダウンのオプションが選択されていない場合、空白として保存されます。何かが入力され、オプションが選択されていない場合、空白として保存されます。ただし、何かが入力され、ドロップダウンから何かが選択された場合、ドロップダウン オプションは保存されます。

うまくいけば、私はそれをあまり混乱させていません。どんな助けでも大歓迎です。

前もって感謝します。

編集:

私の作成アクションは次のようになります

 def create
@company = Company.new(params[:company])
@company.company_name = params[:new_company_name] unless params[:new_company_name].empty?

respond_to do |format|
  if @company.save
    format.html { redirect_to @company, notice: 'Company was successfully created.' }
    format.json { render json: @company, status: :created, location: @company }
  else
    format.html { render action: "new" }
    format.json { render json: @company.errors, status: :unprocessable_entity }
  end
end

終わり

およびフォーム ビュー:

<%= label :company_name %><br />
<%= text_field :new_company_name %>

<%= f.label :company_name %><br />
<%= f.select( :company_name, Company.all.map {|p| [p.company_name]}.uniq!, :prompt => "Select a Company") %>

新しいエラーは次のとおりです。

引数の数が間違っています (1 対 2)

抽出されたソース: <%= label :company_name %>

ご協力いただきありがとうございます!

4

2 に答える 2

4

レールはそれらの処理方法を認識できないため、ビューに同じ名前の 2 つのパラメーターを含めることはできません。

@rodzynは正しいので、彼にクレジットを与えてください.. :)

明確にするために:

あなたのフォーム:

<%= label_tag :new_company_name, "Company name" %><br />
<%= text_field_tag :new_company_name %>

<%= f.label :company_name %><br />
<%= f.select( :company_name, Company.all.map {|p| [p.company_name]}.uniq!, :prompt => "Select a Company") %>

あなたのコントローラー:

@company = Company.new(params[:company])
@company.company_name = params[:new_company_name] unless params[:new_company_name].empty?
于 2012-07-18T10:21:36.483 に答える
2

設定できます

<%= text_field :new_company_name %>

次に create アクションで

@company = Company.new(params[:company])
@company.company_name = params[:new_company_name] unless params[:new_company_name].empty?
于 2012-07-18T10:07:01.503 に答える