【问题标题】:Friendly_id not working, redirects to Category with wrong indexFriendly_id 不起作用,重定向到索引错误的类别
【发布时间】:2012-01-30 01:27:39
【问题描述】:

我已经关注了 Ryan Bates 的截屏视频,以便为我的 Category 模型设置 friendly_id(直到 def should_generate_new_friendly_id? 部分)。其中一个类别是书籍,但由于某种原因 /categories/books 重定向到空白页面,并且日志显示服务器正在尝试获取 id=0 的类别(这是错误的。)所以这就是我所拥有的完成:

class Category < ActiveRecord::Base
  extend FriendlyId
  friendly_id :name, use: :slugged

  validates :name, :presence => true, :uniqueness => true, :length => { :in => 3..20 }
end

我的迁移:

class AddSlugToCategories < ActiveRecord::Migration
  def change
    add_column :categories, :slug, :string
    add_index :categories, :slug
  end 
end

最后但同样重要的是,在 Rails 控制台中:

Category.find_each(&:save)

知道可能是什么问题吗?

编辑:

Started GET "/categories/books" for 127.0.0.1 at 2012-03-02 13:03:29 -0500
  Processing by CategoriesController#show as HTML
  Parameters: {"id"=>"books"}
  Category Load (0.4ms)  SELECT "categories".* FROM "categories" 
  Item Load (0.6ms)  SELECT "items".* FROM "items" WHERE "items"."category_id" = 0
Rendered categories/_items.html.erb (1.9ms)
Rendered categories/show.html.erb within layouts/application (20.7ms)
Completed 200 OK in 139ms (Views: 69.1ms | ActiveRecord: 6.6ms)

【问题讨论】:

  • @KyleMacey 不确定你的意思。如果这就是你的意思,我没有在我的 routes.rb 中添加任何与friendly_id 相关的内容。
  • 甚至在那之前。您是否正在执行与您的类别相关的任何特殊路由?另外,你能发布你的控制器吗?
  • @KyleMacey 不,没有特殊路由。另外,控制器只是脚手架生成的,没有从friendly_id添加任何东西,所以我不知道为什么会改变任何东西。
  • 你的蛞蝓符合你的名字吗?即,保存循环是否按应有的方式工作?
  • @KyleMacey 是的,它们是一样的

标签: ruby-on-rails ruby-on-rails-3.1 friendly-id


【解决方案1】:

事实证明这不仅仅是friendly_id ...(请参阅原始问题的cmets)

好像没有 category#show 动作:

Category.find(params[:id])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-20
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多