0

Rails を使用して、次のようにアプリをビルドしています。複数のストップを持つロードを作成したいと考えています。「has_many :stops」を持つクラス Load があります。ロード構造が作成されたら、ロードを保存し、ユーザーを新しいストップ ビューに移動します。最後のクリックで作成されたロード ID を受け取り、ストップに渡すにはどうすればよいですか? これが私が新しいストップに持っているものです。

<%= label_tag :load_id %><br />
<%= number_field_tag :load_id %>
4

1 に答える 1

1

ネストされたリソースを作成して、load_id が URL: になるようにします/loads/:load_id/stops/new

ロード モデル:

class Load < ActiveRecord::Base
  has_many :stops
end

ルート:

resources :loads do
  resources :stops
end

停止用コントローラー:

class StopsController < ApplicationController
  # get /loads/:load_id/stops/new
  def new
    load = Load.find(params[:load_id])
    @stop = load.stops.build
  end
  # post /loads/:load_id/stops
  def create
    load = Load.find(params[:load_id])
    @stop = load.stops.create(params[:stop])
    if @stop.save
      format.html { redirect_to([@stop.post, @stop], :notice => 'Stop was successfully created.') }
    else
      format.html { render :action => "new" }
    end
  end
end

ここから抽出:

http://blog.8thcolor.com/2011/08/nested-resources-with-independent-views-in-ruby-on-rails/

于 2013-05-19T19:55:26.990 に答える