ビューからコントローラーにIDを渡したい。私はそれに名前を割り当てることによってそれを渡す方法を知っています::eid => @model["_id"]
。そして、を使用してコントローラーをフェッチできparams[:"_id"]
ます。
ただし、URLはになります/create?:eid="1234"
。しかし、私はこれが欲しいです:create/1234
。どうすればそれができますか
- ビューで
- コントローラにフェッチする方法。
ビューからコントローラーにIDを渡したい。私はそれに名前を割り当てることによってそれを渡す方法を知っています::eid => @model["_id"]
。そして、を使用してコントローラーをフェッチできparams[:"_id"]
ます。
ただし、URLはになります/create?:eid="1234"
。しかし、私はこれが欲しいです:create/1234
。どうすればそれができますか
これには、次のようなカスタム routeが必要です。
post "/create/:eid" => "my_controller#my_action"
そうは言っても、 create アクションに route パラメータを追加するのは珍しいことです。典型的な方法は、アクションに送信するフォームに非表示の入力を追加するだけです。
ルートについて少し時間をかけて学習する必要があります。やりたいことを実行するには、ルートを定義する必要があります。
あなたのconfig/routes.rb
match '/create/:eid' => 'underscored_name_of_controller_here#create', :as => :create
次に、あなたの見解では:
create_path(:eid => @model["_id"])
また、ルートのパスはおそらくもっと説明的であるべきであることをお勧めします/create/:_id
が、あなたの質問に答えるという精神で、そのままにしておきました。