2016-10-18 4 views
2

getパラメータでビューをレンダリングすることはできますか?例えば 、のようなもの:「?/プロジェクト/シートを、ID = 43」「パラメータを取得する」ビューをレンダリングすることは可能ですか?

レンダリング

私が正しく動作するURLパラメータを使用してビューをレンダリングする必要があるためです。

私はいろいろ試してみましたが、コントローラーでしか取得できないパラメータが作成されます。

私は他の多くのビューのhtmlコードを含むビューを必要としているからです。

これは私の現在のコードです:私はできるように私のウェブサイト内の他のすべてのビューの内容を含むビューを持ちたいためです

<% Project.where(productchief: user.id).order(:title).each do |project| %> 
<%= render "/projects/sheets?id=#{project.id}" #This doesn't work. %> 
<% end %> 

allProjects.html.erbユーザーはすべてのコンテンツを一度に印刷できます。

+0

コントローラから、または別のビューからパーシャルをレンダリングしていますか?コントローラのプロパティをインスタンス変数として設定できませんか? – David

+0

これは部分的なものではなく、レンダリングしたいビューで、別のビューからレンダリングしたいものです。 プロジェクト(/ projects/sheets)を表示するビューのhtmlをすべて取りたいallProjectsという名前のビューがありますか?id = xはプロジェクトを表示するビューのルートです) いいえ、コントローラのプロパティをインスタンス変数として設定することはできません。私の見解で扱っている治療法とは一貫していないでしょう。 –

+0

私はもっとコーヒーを必要としています...あなたの疑問を誓うことができました。あなたのコメントの追加情報をオリジナルの質問に追加する価値があります。 – David

答えて

2

私はあなたがそれをやろうとしている方法ではできないと思います。/projects/sheetsを部分的に変更して代わりにレンダリングし、ローカル変数を渡す必要があります。

はそう/projects/sheets.html.erbを明確にすることは/projects/_sheets.html.erbになり、あなたはその後のように呼び出します:あなたが作ることができ、部分的_sheets.html.erb内すると

<%= render partial: "/projects/sheets", locals: { :project_id = project.id } %> 

project_idへの参照

0

一般的に、ビュー内のパラメータにアクセスできるはずですが、非常に具体的な理由がない限り、私はあなたのルートを変更することを提案しました。私はあなたの元の質問からいくつかの情報が不足して、しかし、あなたはのようにルートを持っているとしましょうすることができる:あなたのURLを少し変更するだろうが、まだ使用可能のparamsを残すだろう

get 'projects/sheets', to: "projects#index", as: :projects 
    get 'projects/sheets/:id', to: "projects#show", as: :project 

を。あなたのケースで(

{"something_fun"=>"geeks_are_us", "controller"=>"projects", "action"=>"show", "id"=>"5"} 

そして、あなたは部分を介して複数のアイテムをレンダリングするために探しているなら、あなたがのために割り当てられた変数を渡すことができます。次のparamsを与えるlocalhost:3000/projects/sheets/5?something_fun=geeks_are_us:例えば、上記のルートを使用してに行きます) 'project'ビューをレンダリングしますが、です。ビューからレンダリングされているようです。

だから、のようなもの:これは、プロジェクト/ _project.html.erbと変数としてプロジェクトを送付をレンダリングしようとする

<% @projects.each do |project| %> 
    <%= render partial: project, locals: {project: project} %> 
<% end %> 

。あなたのビューに他の変数が必要な場合は、それらをlocalsハッシュに渡してください。

希望ですが、これは助けになります。

関連する問題