我正在尝试安装gem FriendlyId。我正在关注railscast:314-pretty-urls-with-friendlyid。它似乎很容易安装。但不适合我。
以下是我所做的步骤:
added gem "friendly_id", "~> 4.0.9" in Gemfile
然后我运行了bundle install
命令
然后将我的产品型号修改为:
class Product < ActiveRecord::Base
extend FriendlyId
friendly_id :name
attr_accessible :name, :product_code, :recipe, :selling_price, :servings, letsrate_rateable "quality", "packaging", "hygiene" , "service", "price"
validates :name, :presence => true
class << self
def search(params)
if params[:search]
products = Product.published.includes(:product_sub_categories)
end
end
end
end
仍显示'id':
http://localhost:3000/products/9
根据railscast,它应显示产品名称。但事实并非如此。我单独安装宝石但没有效果。
有人可以告诉我缺少什么吗?
答案 0 :(得分:0)
不确定为什么指南中没有提及,但请尝试:
alias_attribute :to_param, :slug
这是有效的,因为to_param方法允许自定义URL的id部分。在这里,您将该部分分配给friendly_id生成的URL。
我不确定这是否在friendly_id中实现,但我这样做了:
class Product < ActiveRecord::Base
def self.find(id_or_slug)
case id_or_slug
when String
find_by_slug id_or_slug
else
super id_or_slug
end
end
end