2010-06-17 8 views
2

У меня есть модель AR внутри модуляRails 3 маршрутов и модули

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

и хотим использовать следующие маршруты (без имен модулей, потому что легче писать и помнить)

resources :models 

buts Rails 3 всегда хочет использовать URL-адрес, такой как

long_module_path_model_url 

Есть ли способ изменить это поведение?

Надеюсь, что кто-нибудь может мне помочь?

Марио

ответ

2
resources :your_looooooong_model_name, :as => :short 

дать Вам shorts_url и т.д.

+1

Нет, извините, не сработало для меня ... Теперь появилось много ошибок маршрутизации. –

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). Кажется, не работает. –

+0

Возможно, пересмотренная версия выше лучше. –

2

Я знаю, что это старый вопрос, но другие неправильно поняли ваш вопрос и не решили вашу проблему.

Вам необходимо переопределить метод MODEL_NAME, как показано ниже:

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

Заслуга этого comment.

Смежные вопросы