0
假設我有一個模型,名爲Car,我可以在/cars/:id
上訪問我的車展活動。第一張唱片將會生活在/cars/1
,但我不想要它。我想永久鏈接長度爲8個數字,不管車的身份證是什麼。因此,例如,第一個固定鏈接將是00000001
而不是1
。將對象固定長度改爲預定義長度的大小
我不知道如何實現該功能,在模型中可以做什麼(to_param
方法)或者在路徑中做什麼。
請幫助我,如果你可以,我欣賞任何提示。
假設我有一個模型,名爲Car,我可以在/cars/:id
上訪問我的車展活動。第一張唱片將會生活在/cars/1
,但我不想要它。我想永久鏈接長度爲8個數字,不管車的身份證是什麼。因此,例如,第一個固定鏈接將是00000001
而不是1
。將對象固定長度改爲預定義長度的大小
我不知道如何實現該功能,在模型中可以做什麼(to_param
方法)或者在路徑中做什麼。
請幫助我,如果你可以,我欣賞任何提示。
您是否嘗試過使用friendly_id寶石。如果您可以使用它,我強烈建議您使用它。從代碼中的註釋:
FriendlyId總是使用一種方法作爲slug文本的基礎 - 而不是 列。乍一看,這可能聽起來很混亂,但請記住,活動記錄爲模型的關聯 表中的每列提供了方法,這就是FriendlyId使用的方法。
這是一個使用一個自定義的方法來生成蛞蝓類的例子:
class Person < ActiveRecord::Base
friendly_id :name_and_location
def name_and_location
"#{name} from #{location}"
end
end
bob = Person.create! :name => "Bob Smith", :location => "New York City"
bob.friendly_id #=> "bob-smith-from-new-york-city"
所以,我想你可以這樣做:
class Car < AR::Base
friendly_id :id_of_length_eight
def id_of_length_eight
# logic here to add leading zeroes
end
end