2017-11-10 3 views
-1

私はユーザーを持つアプリを作成しました。ユーザーは多くのプレーヤーを持つことができ、各プレーヤーは多くの能力を持つことができます。プレイヤーのショービューでは、プレイヤーとその能力についての情報を見ることができますが、そのプレイヤーの能力を作成/更新するためのフォームが必要です。能力コントローラーからプレイヤーショービューへのビューを実装するにはどうすればいいですか?ajax経由で彼の能力を直接作成/編集して削除できますか?私は能力からnew.html.erbを部分的に作り、それをshow.html.erbにレンダリングすることを考えていましたが、私はform_forに何を入れて、レールが異なるモデルとコントローラと通信するはずであることを知っていますか?これを行う正しい方法は何ですか?別のコントローラーからの新しい入れ替え用の書式

答えて

0

まずは、関連するモデル(能力)にform_forを追加する際に、プレーヤーのショーに問題はありません。あなたはフォームの一部を作り、すべての能力のためにそれをレンダリングすることができます。

@abilities = @player.abilities 

、ショーコントローラにおいて

#Some code to show player details 
<% @abilities.each do |ability| %> 
<%= render 'ability', ability: ability%> #Pass local variable ability to partial 
<% end %> 

情報を更新するためにINITでAJAXとのform_forタグを使用して部分的作ります。また、あなたはあなたが能力に能力の一部を配置することができます

form_for(ability,:url => url_for(:controller => 'abilities', :action => 'update') 

を使用してのform_forタグの「アクション」を定義できる能力のコントローラーに対応するフォルダとして上記レンダリング文でその相対パスを与える:

<%= render '/abilities/ability', ability: ability %>