如何在URL中使用Gsub获取:id/:title



我有一个Clips Controller,其中:

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

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

我正试图在URL中实现这一点,剪辑将显示为:

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

另外,我需要让gsub参与进来,这样那些丑陋的%20就不会出现在每个Space 上

有人能告诉我这件事吗?

我正在搜索没有FriendlyID的解决方案

假设/1/是记录的ID,那么在url中添加:title是多余的。

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

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

这会给你一个"clip/1-title"形式的url,这将与活动记录find(param[:id])方法一起工作

另外,一个更安全的参数字符串是用参数化标题

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

最新更新