0

我正在寻找如何在没有空格的情况下保存我的输入。

我通过以下方式收集表单上的输入

<%= f.input :name %>

并将其也用于链接

localhost:3000/users/:name

问题是,如果有人在他的名字中使用 Spaces,那么链接就会变得丑陋,带有 % 符号等。

如何存储没有空格的输入?

例如

输入为:Hey im John 另存为:HeyimJohn

我的模型:

class Show < ActiveRecord::Base

    belongs_to :user

    validates :name, :presence => true, :uniqueness => true

    # Show Cover
    has_attached_file :cover, styles: { show_cover: "870x150#"}
    validates_attachment :cover,
                                             content_type: { content_type: ['image/jpeg', 'image/jpg', 'image/png'] },
                                             size: { less_than: 5.megabytes }


    def to_param
        name
    end

end
4

1 回答 1

2

使用 gsub:

> "Hey im John".gsub(/\s+/,"")
 => "HeyimJohn"

要更新哈希,您可以执行以下操作:

params_hash.each { |k, v| params_hash[k] = v.gsub(/\s+/, "") 

更新:

要更新模型中的特定属性,您可以在模型中定义一个设置器来删除所有空格:

def my_attribute=(value)
  write_attribute(:my_attribute, value.gsub(/\s+/,""))
end
于 2013-08-25T08:19:06.297 回答