我有一個AR模型模塊Rails 3條的路線和模塊
class Long::Module::Path::Model < ActiveRecord::Base
end
內,要使用以下路線(不包括模塊名稱,因爲它更容易編寫和記憶)
resources :models
但是Rails 3總是希望使用類似於如下的URL:
long_module_path_model_url
是否有方法可以改變這種行爲?
希望有人能幫助我嗎?
馬里奧
我有一個AR模型模塊Rails 3條的路線和模塊
class Long::Module::Path::Model < ActiveRecord::Base
end
內,要使用以下路線(不包括模塊名稱,因爲它更容易編寫和記憶)
resources :models
但是Rails 3總是希望使用類似於如下的URL:
long_module_path_model_url
是否有方法可以改變這種行爲?
希望有人能幫助我嗎?
馬里奧
resources :your_looooooong_model_name, :as => :short
會給你shorts_url等
我談論路由僅處理控制器級時,你爲什麼要引用一個模型有點好奇;但這篇文章應該是有幫助的:R3 Controller Namespaces and Routing
「如果你想路由/照片(不帶前綴/管理員)管理員:: PostsController,你可以使用:
scope :module => "admin" do
resources :posts, :comments
end
」
如果你想指定的路徑改變,你可以使用:如,按指定的位置:R3 Prefixing the Named Routes Helpers
所以我猜沿
東西線101:
scope :module => 'long/module/path' do
resources :model, :as => :model
end
或2:
scope :module => 'long' do
scope :module => 'module' do
scope :module => 'path' do
resources :model, :as => :model
end end end
是你在找什麼。
不,你不理解我;)我想通過model_path(@model)訪問我的模型,而不是使用long_module_path_model(@model)訪問我的模型。似乎沒有工作。 – 2010-09-24 11:40:05
也許上面的修改版更好。 – 2010-09-24 18:15:25
我知道這是一個老問題,但其他人誤解了你的問題,並沒有解決你的問題。
你需要重寫爲下面的模型名稱方法:
class Long::Module::Path::Model < ActiveRecord::Base
def self.model_name
ActiveModel::Name.new(Long::Module::Path::Model, nil, "YourNewModelName")
end
end
幸得此comment。
不,很抱歉沒有爲我工作...現在有很多路由錯誤。 – 2010-06-17 21:16:33