0

QuestionsTags

当您单击标签名称时,它会将您带到/tagname.

例如点击ruby带你到/ruby.

但是,有些标签名称需要进行 HTML 转义(例如c#or.net等​​)。

我怎么做?

我尝试params[:tag].html_safe在我的控制器中执行此操作,但这并没有这样做,因为之前发送的参数不正确。

c#例如,当我点击标签(或者我手动输入c#URL)时,这就是日志的样子。

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
4

1 回答 1

1

在 Tag 模型中添加一个 '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' gem: https ://github.com/norman/friendly_id

于 2013-03-29T13:25:24.393 回答