rails to_param url正则表达式限制器

时间:2010-11-05 04:10:48

标签: ruby-on-rails regex routes

我为标题道歉,这几乎没有意义。

所以在我使用的messages.rb模型上:

def to_param
    "#{id}-#{message.gsub(/\W/, '-').downcase}"
end

这样就可以使网址显示如下:

http://myapp.com/messages/1-this-is-a-message

问题是,当消息真的很长时,并且在实时,它会导致应用程序崩溃。

如何更改此to_params函数以将在网址中显示的字符数限制为前25个左右。

谢谢!

2 个答案:

答案 0 :(得分:2)

使用String对象的slice方法或[]表示法:( []只是slice的别名)

def to_param
   "#{id}-#{message[0..25].gsub(/\W/, '-').downcase}"
end

答案 1 :(得分:0)

 def to_param
     "#{id}-#{truncate(message, :length => 40).gsub(/\W/, '-').downcase}"
 end

您可以使用Rails的truncate helper:

truncate(message, :length => 40)

消息当然是您的消息,您可以指定长度