RoRを学習するための非常にシンプルなレシピアプリを作成しており、ユーザーがフォームではなくリンクをクリックしてレシピを保存できるようにしようとしているため、link_toを介してuser_recipeコントローラーの「create」関数を接続しています。
残念ながら、何らかの理由で、link_toはcreateではなくindex関数を呼び出しています。
link_toを次のように記述しました
<%= "このレシピを保存"、:action =>'作成'、:recipe_id => @recipe%>
このリンクはuser_recipes/index.html.erbにあり、同じコントローラーの「作成」関数を呼び出しています。:controllerを含めるかどうかは、違いがないようです。
コントローラーは次のようになります
defインデックス @recipe = params [:recipe_id] @user_recipes = UserRecipes.all#db内に複数のユーザーがいる場合に検索するように変更 response_todo|フォーマット| format.html#index.html.erb format.xml {render:xml => @recipes} 終わり 終わり def create @user_recipe = UserRecipe.new @ user_recipe.recipe_id = params [:recipe_id] @ user_recipe.user_id = current_user response_todo|フォーマット| @menu_recipe.saveの場合 format.html {redirect_to(r、:notice =>'メニューは正常に作成されました。')} format.xml {render:xml => @menu、:status =>:created、:location => @menu} そうしないと format.html {render:action => "new"} format.xml {render:xml => @ menu.errors、:status =>:unprocessable_entity} 終わり 終わり