Rails 2.3.8では、私はcustomer_idを必要とするクレジットカードコントローラを持っています。私はbefore_filterとメソッドを使用して顧客IDを取得します。 new_admin_credit_card_path(:customer_id => @ customer.id)のようなパスを使用して、クレジットカードコントローラが処理するページにアクセスします。クレジットカードを作成または編集するためのフォーム提出に問題があります。顧客IDは渡されないか、渡されますが、アクションは適切に応答しません。ここで私は私のform_forにしようとしているものです:フォームの送信中にコントローラに引数を渡すときに問題が発生する
<% form_for :credit_card,
:url => admin_credit_cards_path(:customer_id => @customer.id) do |f| %>
...BLAH BLAH CODE BLAH...
<%= f.submit %>
<% end %>
ここに私が取得エラーです:、37165 CUSTOMER_ID =>:
ルーティングエラー admin_credit_card_urlは{から生成するのに失敗したコントローラ=> "管理者/ credit_cards "、:action =>" show "}、期待値:{:controller =>" admin/credit_cards "、:action =>" show "}、diff:{:customer_id => 37165}
試しました:
<% form_for (:credit_card, @credit_card, :url => { :controller => "admin/credit_cards",
:action => "update" }) do |f| %>
そして私は
不明アクション
アクションなしには、それは顧客IDがアクションだと思います37762.
に応えます。
def create
@credit_card = scope.new(params[:credit_card])
set_modified @credit_card
respond_to do |format|
if @credit_card.save
flash[:notice] = 'CreditCard was successfully created.'
format.html { redirect_to admin_credit_card_path(:customer_id => @customer.id) }
format.xml { head :created, :location => admin_credit_card_url(:customer_id =>
@customer.id) }
else
format.html { render :action => "new" }
format.xml { render :xml => @credit_card.errors.to_xml }
end
end
end
def update
@credit_card = scope.find(params[:id])
set_modified @credit_card
respond_to do |format|
if @credit_card.save
flash[:notice] = 'CreditCard was successfully updated.'
format.html { redirect_to admin_credit_card_path(:customer_id => @customer.id) }
format.xml { head :ok }
else
format.html { render :action => "edit" }
format.xml { render :xml => @credit_card.errors.to_xml }
end
end
end
は、[OK]を私はそれを試してみましたが、私はこのエラーを取得: リクエスト パラメータ:/クレジットcardsController#は がCUSTOMER_IDにもかかわらず パラメータにあるIDなしで顧客を見つけることができませんでし作成管理ではActiveRecord :: RecordNotFoundを: "commit" => "変更を保存"、 "credit_card" => {"issuer_id" => "1"、 "exp_year" => "2023" "ct_card_number" => "4111111111111111"、 "city" => "New York"、 "state" => "NY"、 "ジップ" => "10016"、 "アドレス1" => "123第一アベニュー"、 "アドレス2" => ""、 "exp_month" => "1"、 "国" => "840" 、 "customer_id" => "37165"、 "holder_name" => "NEW CARD"、 "アクティブ" => "1"}} –
修正済み。隠しフィールドはフォーム内にあってはなりません。それはhidden_field_tagでなければなりません –