0
使用Rails 4.2,我想使用attr_accessor
而不是表列創建自定義路由,但我無法使resource_path
方法正常工作。使用自定義屬性而不是表列的路徑
我想要這樣的自定義路線:/foos/the-title-parameterized-1
(其中「1
」是對象的id
)。
Foo
型號:
#...
attr_accessor :slug
#dynamically generate a slug:
def slug
"#{self.title.parameterize[0..200]}-#{self.id}"
end
#...
routes.rb
:
get 'foos/:slug' => 'foos#show', :as => 'foo'
foos_controller.rb
:
def show
@foo = Foo.find params[:slug].split("-").last.to_i
end
在我show
視圖,當我使用的輔助方法foo_path
返回使用012路線的對象而不是slug
這樣的:/foos/1
。是否有可能得到這個輔助方法來使用訪問器方法?我用這種方法跟蹤了嗎?
我寧願使用Friendly Id但我不相信它可能沒有在我的模型表中創建一個slug
列。我不想創建一個列,因爲有數百萬條記錄。
不知道約束選項 - 有用的東西,謝謝。 – joshweir