テンプレート「groups/show.html.erb」があります。パラメーターをコントローラーに渡すことでパーシャルをレンダリングするリンクがあります。次に、コントローラーはパラメーターを使用して、どのJS呼び出しを行うかを識別します。
<%= link_to 'Add a Video', group_path(create_video: true), remote: true %>
その後、コントローラーで
elsif params[:create_video]
@video = Group.find(params[:id]).videos.build
respond_to do |format|
format.js {render action: 'create_video'}
end
これにより、videos_controllerのcreateメソッドを使用してビデオを作成するフォームでパーシャルが表示されます。フォームの検証が失敗し、「groups / show」をレンダリングしようとすると、ルーティングエラーが発生します。
_create_video.html.erb
<%= form_for @video, :url => group_videos_path(@group) do |f| %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>
{:action => "show"、:controller => "groups"、:create_video=>true}に一致するルートはありません
これを機能させるには、routes.rbで明示的に一致させることができると思いますが、それを行うためのより良い方法はありますか?本当にありがとう