私はページ上に2つのcollection_selectヘルパーを使用しています。リスト自体は正しく設定されていますが、フォームを送信するとNULLが挿入されます。私がここで間違っていることを確かめない。 UPDATE:追加コントローラー・コードRuby for Rails collection_selectがモデルにフィールドを提出しない
New.html.erb:
<h1>New map_apps_suite</h1>
<%= render 'form' %>
<%= link_to 'Back', map_apps_suites_path %>
フォームコード:
<%= form_for(@map_apps_suite) do |f| %>
<% if @map_apps_suite.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@map_apps_suite.errors.count, "error") %> prohibited this map_apps_suite from being saved:</h2>
<ul>
<% @map_apps_suite.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div>
<%= f.label "Application Name:" %>
<%= collection_select(:death_burrito_application, :id, DeathBurritoApplication.all, :id, :death_burrito_name, :prompt => true) %>
</div>
<br>
<br>
<div>
<%= f.label "Project Name:" %>
<%= collection_select(:custom_product_suite, :id, CustomProductSuite.all, :id, :product_suite_name, :prompt => true) %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
ログイン:
が127.0.0.1のために、 "/ map_apps_suites" POSTを開始at Fri Sep 02 20:57:10 -0700 2011 MapAppsSuitesControllerの処理#HTML形式で作成
で発見302を完成 http://localhost:3000/map_apps_suites/3にリダイレクトCOMMIT
のパラメータ:{} => "マップスイートのアプリ作成"、 "death_burrito_application" => { "ID" => "3200" を "コミット"、 "authenticity_token" => "0PP2U50CScjTbcUdRgbIjkExqo9k3psjlcf4w61ZpqI ="、 "UTF8" =>map_apps_suites
[1m] [1m [35mSQL(13.0ms)[0m] [1m [36mSQL (0.0ms) [36mAREL(22.0ms)[0メートル[1mINSERT INTOmap_apps_suites
(custom_product_suite_id
、death_burrito_application_id
)VALUES(NULL、NULL)[0メートル[1メートル[35mSQL (44.0ms)[0メートルを185ms
コントローラの作成のためのコード、新しい:
class MapAppsSuitesController < ApplicationController
before_filter :get_apps, :only => [:new, :edit, :destroy, :update]
before_filter :get_suites, :only => [:new, :edit, :destroy, :update]
def get_apps
@applications = DeathBurritoApplication.order(:death_burrito_name).all
end
def get_suites
@custom_prod_suites = CustomProductSuite.order(:product_suite_name).all
end
def new
@map_apps_suite = MapAppsSuite.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @map_apps_suite }
end
end
def create
@map_apps_suite = MapAppsSuite.new(params[:map_apps_suite])
Rails.logger.debug("Params: " + params.inspect)
respond_to do |format|
if @map_apps_suite.save
format.html { redirect_to(@map_apps_suite, :notice => 'Map apps suite was successfully created.') }
format.xml { render :xml => @map_apps_suite, :status => :created, :location => @map_apps_suite }
else
format.html { render :action => "new" }
format.xml { render :xml => @map_apps_suite.errors, :status => :unprocessable_entity }
end
end
end
を役に立てば幸いそれは
であるとして、次のようなメソッドを作成して、残っているHTMLを変更]
2をcollection_selectする
f.
を追加答える。 – Salilコントローラーコードが追加されました。 – ScottJShea