如何获取:id /:带有Gsub的URL标题

时间:2013-08-30 15:57:12

标签: ruby-on-rails ruby-on-rails-4 scaffolding

我有Clips Controller其中:

def set_clip
  @clip = Clip.find(params[:id])
end

我的剪辑具有:title属性,用户可以在创建时设置该属性。

我正在尝试在URL中实现该剪辑将显示为:

http://localhost:3000/clip/1/:title

另外,我需要让gsub参与进来让那些丑陋的%20 不会出现在每个空间

有人可以开导我吗?

我正在寻找没有FriendlyID的解决方案

1 个答案:

答案 0 :(得分:3)

假设/ 1 /是记录的ID,在URL中将:title作为额外内容是redundent。

实现相同结果的类似(且简单)方法是在模型上定义to_param

def to_param
    "#{id}-{title}"
end

然后会以“clip / 1-title”的形式为您提供一个url,它可以与活动记录find(param[:id])方法一起使用

另外,更安全的参数字符串是用以下参数化标题:

"#{id}-{title.parameterize}"