我Questions
Tags
。
点击代码名称后,会转到/tagname
。
E.g。点击ruby
会转到/ruby
。
但是,有些标记名称需要进行HTML转义(例如c#
或.net
等)。
我该怎么做?
我尝试在我的控制器中执行params[:tag].html_safe
,但是这样做不会,因为之前的params发送不正确。
E.g。当我点击c#
标记(或者我在URL中手动输入c#
)时,这就是日志的样子。
Started GET "/c" for 127.0.0.1 at 2013-03-29 07:31:46 -0500
Processing by HomeController#index as HTML
Parameters: {"tag"=>"c"}
Tag Load (26.7ms) SELECT "tags".* FROM "tags" WHERE "tags"."name" = 'c' LIMIT 1
这就是我的路线:
get ':tag', to: 'home#index', as: :tag
答案 0 :(得分:1)
在标记模型中添加“slug”列,并在其中存储标准化形式的名称:
class Tag < ActiveRecord::Base
before_create :build_slug
def build_slug
self.slug = name.parameterize
end
end
在'slug'列上添加唯一索引,并使用Tag#find_by_slug
查找标记或者看看'friendly_id'宝石: https://github.com/norman/friendly_id