2010-06-17 49 views
2

我有一個AR模型模塊Rails 3條的路線和模塊

class Long::Module::Path::Model < ActiveRecord::Base 
end 

內,要使用以下路線(不包括模塊名稱,因爲它更容易編寫和記憶)

resources :models 

但是Rails 3總是希望使用類似於如下的URL:

long_module_path_model_url 

是否有方法可以改變這種行爲?

希望有人能幫助我嗎?

馬里奧

回答

2
resources :your_looooooong_model_name, :as => :short 

會給你shorts_url等

+1

不,很抱歉沒有爲我工作...現在有很多路由錯誤。 – 2010-06-17 21:16:33

3

我談論路由僅處理控制器級時,你爲什麼要引用一個模型有點好奇;但這篇文章應該是有幫助的:R3 Controller Namespaces and Routing

「如果你想路由/照片(不帶前綴/管理員)管理員:: PostsController,你可以使用:

scope :module => "admin" do 
    resources :posts, :comments 
end 

如果你想指定的路徑改變,你可以使用:如,按指定的位置:R3 Prefixing the Named Routes Helpers

所以我猜沿

東西線10

1:

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 

是你在找什麼。

+0

不,你不理解我;)我想通過model_path(@model)訪問我的模型,而不是使用long_module_path_model(@model)訪問我的模型。似乎沒有工作。 – 2010-09-24 11:40:05

+0

也許上面的修改版更好。 – 2010-09-24 18:15:25

2

我知道這是一個老問題,但其他人誤解了你的問題,並沒有解決你的問題。

你需要重寫爲下面的模型名稱方法:

class Long::Module::Path::Model < ActiveRecord::Base 
    def self.model_name 
    ActiveModel::Name.new(Long::Module::Path::Model, nil, "YourNewModelName") 
    end 
end 

幸得此comment