我有Clips Controller
其中:
def set_clip
@clip = Clip.find(params[:id])
end
我的剪辑具有:title
属性,用户可以在创建时设置该属性。
我正在尝试在URL中实现该剪辑将显示为:
http://localhost:3000/clip/1/:title
另外,我需要让gsub参与进来让那些丑陋的%20 不会出现在每个空间
有人可以开导我吗?
我正在寻找没有FriendlyID的解决方案
答案 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}"