微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

拆分输入的值并使结果对URL友好

如何解决拆分输入的值并使结果对URL友好

|| 我有这样一种表单,用户可以在其中输入\“图形设计,插图等\”这样的标签(tag_list输入),然后在保存之前将这些标签转换为url友好字符串,例如\“ graphic-design \”到数据库,以便我可以在我的html中将它们用作类。我已经在用户仅在字段中输入一个标签(例如\“图形设计\”)的情况下起作用,但是如果用户输入2个或更多字段,我的代码将无法工作,我也不知道如何让它工作。 有任何想法吗? 型号代码
class Work < ActiveRecord::Base

  before_save :url_friendly_tags

  def url_friendly_tags
    self.tag_slug = self.tag_list.to_s.gsub(/\\s+/,\'_\').gsub(/[^\\w\\-]/,\'\')
  end

end
风景:
<% semantic_form_for @work do |f| %>
    <% f.inputs do %>
        <%= f.tag_list %>
        <%= f.input :tag_slug,:as => :hidden %>
    <% end %>
<% end %>
    

解决方法

        如果要处理用逗号(或分号)分隔的标签列表,也许您需要
self.tag_list.split(/\\s*[;,]\\s*/).collect {|s| s.gsub(/\\s+/,\'_\').gsub(/[^\\w\\-]/,\'\')}.join(\",\")
或类似的字符(即在处理之前拆分用户输入)?假设ѭ3a是一个字符串,这应该可以解决问题。 先前的答案,为了对话 我误解了这个问题,所以我建议使用路由遍历:
match \'books/*section/:title\' => \'books#show\'
对于URL
books/foo/bar/baz
,此路由将在a6ѭ中填充字符串
foo/bar
,因此您需要在
/
上将其
split
。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。