2017-10-23 25 views
0

私はレールが新しく、まだ物事を置く場所がとても分かりません。私はいくつかのボタンを持っているビューを持っている、それぞれは別のグラフやフォームをレンダリングするが、私はレンダリングのロジックを配置するか分からない。ruby​​ on railsのビューでさまざまなパーシャルをレンダリングするにはどうすればよいですか?

これまでのところ私は、次のと考えてきました:

  1. 空のdivに関連するグラフを置くjs.erbをレンダリング私のコントローラにいくつかのメソッドを追加します。これの問題は、コントローラがかなり忙しくなることです。これはレールスタイルに反していると思います。
  2. javascript関数をボタンonclickイベントにリンクさせるだけで、divにdivを挿入します。この問題は、あらかじめレンダリングされたグラフがすべて横になってしまい、かなり厄介なように見えることです。
+0

コントローラにたくさんのアクションがあることは間違いありません。あなたが避けなければならないことは、_big_アクションを持っていることです。 – henrebotha

+0

さて、ありがとう! –

答えて

0

これを表示するコントローラアクションが1つ以上必要です。コントローラーで多くのアクションを実行しても問題ありません。回避したいアクションは非常に大きなアクションを実行しています。アクションは、通常、非常に簡潔でなければなりません。関連するモデルから関連するデータを取得し、次に何かをレンダリングします。

0

各ボタンまたはフォームの値またはIDを設定し、Ajax getコールを使用してfunをオンに設定します。したがって、データパラメータでは、値/ IDが部分(グラフまたはフォーム)になるボタン/フォームの値/ IDを送信します。最後に、いくつかのアクションでは、これらのparamsを受け取ると、このように、部分的にレンダリングで、それを補間:

def graphs 
    render partial: "path/to/partial/#{params[:button_id]}" 
end 

今、あなたは、AJAXの成功とdivを取り込むことができます。

関連する問題