0

なぜこれが起こっているのかよくわかりません。おそらくあなたの誰かがそうするでしょう...ここに行きます.

ネストされたリソースを作成しました:

resources :order do
  resources :ordered_vehicles
end

アクションを追加しlink_toてlike を渡したので、ページがうまく読み込まれます。問題は、ボタンを押して選択を送信した後です。彼はパスを からに切り替え、エラーを表示します... 図に進みます。neworder.idnew_order_ordered_vehicle_path(order.id)http://localhost:3000/order/3/ordered_vehicles/newhttp://localhost:3000/order/R076027535/ordered_vehiclesCouldn't find Order with id=R076027535

このメソッドのコントローラーでエラーが発生しています

private
  def find_order
    @order = Order.find(params[:order_id])
  end

ですbefore_filter

ファイルは次のようになりnew.html.hamlます

= form_for [@order, @ordered_vehicle], html: { multipart: true } do |f|
  = @order.number
  %br= @order.id
    = f.fields_for :vehicles do |car|
      .... #some fields here
      = car.submit "Save your choice"

id彼が見つけられないのはそれ@order.numberですが、なぜ切り替えたのかわかりません。

編集:徹底的にするために、コントローラーメソッドを追加します:

def new
  @ordered_vehicle = @order.ordered_vehicles.build(params.slice(:order_id, :vehicle_id))
end

def create
  binding.pry
  @ordered_vehicle = @order.ordered_vehicles.build(params.slice(:order_id, :vehicle_id))
  if @ordered_vehicle.save
    flash[:notice] = "Save successful."
    redirect_to account_path
  end
end

POSTリクエスト(これがすべての新しいものであることを願っています):

"action_dispatch.request.formats"=>[text/html]},
 @request_method="POST", @filtered_parameters={"utf8"=>"✓", "authenticity_token"=>
 "Ar4vy8pqCSpA2ch0qG0qiJXAJUbNALYxm/FbuKbdzCc=", "ordered_vehicle"=>
 {"vehicles"=>   {"maker_id"=>"", "model_id"=>"", "year"=>"", "body"=>"", "capacity"=>"", "id"=>"1"}},
 "commit"=>"Save your choice", "action"=>"create",
 "controller"=>"spree/ordered_vehicles", "order_id"=>"R076027535"}, @method="POST",
 @fullpath="/order/R076027535/ordered_vehicles">
4

1 に答える 1

0

リクエストに応じて;)

まあ、それは私が現在微調整している問題であることが判明しましたSpree(明示的に言及しなかったことは知っていますが、あまりにも多くの情報を投稿したくありませんでした).

結論:

Orderモデルでは、列を に渡すためにメソッドが上書きto_paramされました。再度上書きせず、そのままにして適応させました。私の方法では、次のように書きました。numberparamsfind_order

  def find_order
    @order = Order.find_by_number(params[:order_id])
  end

また、注文番号をテーブルに保存しました。それがないと信じられる問題がありましたが、明確に思い出せません。とにかく、助けてくれてありがとう。

PS ネタバレすみません

于 2013-03-22T10:14:11.877 に答える