Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在URL中使用Gsub获取:id/:title_Ruby On Rails_Ruby On Rails 4_Scaffolding - Fatal编程技术网

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

Ruby on rails 如何在URL中使用Gsub获取:id/:title,ruby-on-rails,ruby-on-rails-4,scaffolding,Ruby On Rails,Ruby On Rails 4,Scaffolding,我有一个Clips控制器,其中: def set_clip @clip = Clip.find(params[:id]) end 我的剪辑有一个:title属性,用户可以在创建时设置该属性 我试图在URL中实现这一点,剪辑将显示为: http://localhost:3000/clip/1/:title 另外,我需要让gsub参与进来,这样那些丑陋的%20就不会出现在每个空间 有人能给我一些启发吗 我正在搜索一个没有FriendlyID的解决方案,假设/1/是记录的ID,url中的:ti

我有一个
Clips控制器
,其中:

def set_clip
  @clip = Clip.find(params[:id])
end
我的剪辑有一个
:title
属性,用户可以在创建时设置该属性

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

http://localhost:3000/clip/1/:title
另外,我需要让gsub参与进来,这样那些丑陋的%20就不会出现在每个空间

有人能给我一些启发吗


我正在搜索一个没有FriendlyID的解决方案,假设/1/是记录的ID,url中的:title是redundent

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

def to_param
    "#{id}-{title}"
end
这将以“clip/1-title”的形式为您提供一个url,该url将与活动记录
find(param[:id])
方法配合使用

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

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

假设/1/是记录的ID,则在url中将:title作为额外的名称是redundent

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

def to_param
    "#{id}-{title}"
end
这将以“clip/1-title”的形式为您提供一个url,该url将与活动记录
find(param[:id])
方法配合使用

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

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

谢谢你,伙计,“{id}-{title}”搞定了,你知道我怎么把gsub放进去吗,因为每个空间都有这个丑陋的%20标志。谢谢,我已经用一个“dasherised”标题字符串更新了帖子,例如谢谢,伙计,“#{id}-#{title}”起了作用,你知道我怎么把gsub放进去吗,因为每个空格上都有这个丑陋的%20符号。谢谢,我已经用“dasherised”标题字符串示例更新了这篇文章