ruby-on-rails-3 - 没有路由匹配 :action => edit rails 3

标签 ruby-on-rails-3

我不明白为什么在尝试更新菜谱时收到上述错误消息

这是我的 rake 路线的输出

      recipes GET    /recipes(.:format)                recipes#index
              POST   /recipes(.:format)                recipes#create
   new_recipe GET    /recipes/new(.:format)            recipes#new
  edit_recipe GET    /recipes/:id/edit(.:format)       recipes#edit
       recipe GET    /recipes/:id(.:format)            recipes#show
              PUT    /recipes/:id(.:format)            recipes#update
              DELETE /recipes/:id(.:format)            recipes#destroy
         root        /                                 public_pages#index

我的 Controller 看起来像这样

def edit
  @recipe = Recipe.find(params[:id])
end

def update
  @recipe = Recipe.find(params[:id])

  if @recipe.update_attributes(params[:recipe])
    redirect_to recipes_path, :notice => "Successfully updated recipe"
  else 
    render :action => 'edit'
  end
end

以及我编辑帖子的链接

<%= link_to "Edit Recipe", edit_recipe_path(@recipe) %>

完整的错误是(这是在尝试访问食谱页面时

Routing Error

No route matches {:action=>"edit", :controller=>"recipes"}

Try running rake routes for more information on available routes. 

最后是我正在使用的表单,现在我唯一能想到的是我的表单有问题,尽管我认为您可以使用相同的表单进行新建和编辑?虽然我可能完全错了

大家有什么想法

最佳答案

好吧,看来我需要这个

 <%= link_to "Edit Recipe", edit_recipe_path(r.id) %>

这是因为我通过了

 <% @recipes.each do |r| %>

关于ruby-on-rails-3 - 没有路由匹配 :action => edit rails 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13184960/

相关文章:

ruby-on-rails - 从 spree 1-3 升级到 2-0-稳定

ruby-on-rails - RestClient 记录响应

mysql - Rails 3 - 在查询中包含值

ruby-on-rails - Assets 预编译错误:未初始化的常量 Mongo::Logging

ruby-on-rails-3 - Rails的性能问题:如何发送gzip Assets

ruby-on-rails - 如何供应 Rails3/Bundler 的 gem

ruby-on-rails-3 - Rails 3.1 Assets 管道 - IE 未加载开发中的所有样式表

ruby-on-rails-3 - 获取窗口的标题而不将其聚焦在 Capybara/Selenium 中

ruby-on-rails - Windows 上 Ruby on Rails 的 Apache 模块

ruby-on-rails - Bundler 与 Rubygems 2.0 不兼容。请升级到 Bundler 1.3 或更高版本