我正在构建一个相当简单的食谱应用程序来学习 RoR,并且我试图允许用户通过单击链接而不是通过表单来保存食谱,因此我通过 link_to 连接 user_recipe 控制器的“创建”功能。
不幸的是,由于某种原因,link_to 调用的是 index 函数而不是 create。
我已将 link_to 写为
<%= "保存这个食谱", :action => 'create', :recipe_id => @recipe %>
此链接位于 user_recipes/index.html.erb 上,并正在调用同一控制器的“创建”功能。如果我包含 :controller 似乎没有什么区别。
控制器看起来像这样
定义索引 @recipe = 参数[:recipe_id] @user_recipes = UserRecipes.all # 更改以查找 db 中何时有多个用户 respond_to 做 |格式| format.html #index.html.erb format.xml { 渲染 :xml => @recipes } 结尾 结尾 定义创建 @user_recipe = UserRecipe.new @user_recipe.recipe_id = 参数[:recipe_id] @user_recipe.user_id = current_user respond_to 做 |格式| 如果@menu_recipe.save format.html { redirect_to(r, :notice => '菜单已成功创建。') } format.xml { 渲染 :xml => @menu, :status => :created, :location => @menu } 别的 format.html { 渲染 :action => "new" } format.xml { 渲染 :xml => @menu.errors, :status => :unprocessable_entity } 结尾 结尾