Routing Rails 3路线和模块
我在一个模块里有一个AR模型Routing Rails 3路线和模块,routing,routes,ruby-on-rails-3,Routing,Routes,Ruby On Rails 3,我在一个模块里有一个AR模型 class Long::Module::Path::Model < ActiveRecord::Base end 但是Rails 3总是希望使用像这样的URL long_module_path_model_url 有没有办法改变这种行为 希望外面有人能帮我 马里奥 会给你一些简短的url等等。我有点好奇,为什么你在谈论只处理控制器级别的路由时会引用一个模型;但这篇文章应该有帮助: “如果要将/photos(不带前缀/admin)路由到admin::Post
class Long::Module::Path::Model < ActiveRecord::Base
end
但是Rails 3总是希望使用像这样的URL
long_module_path_model_url
有没有办法改变这种行为
希望外面有人能帮我
马里奥
会给你一些简短的url等等。我有点好奇,为什么你在谈论只处理控制器级别的路由时会引用一个模型;但这篇文章应该有帮助: “如果要将/photos(不带前缀/admin)路由到admin::PostsController,可以使用:
scope :module => "admin" do
resources :posts, :comments
end
"
如果希望更改命名路径,可以使用:as,如下所述:
所以我在猜测一些类似于
1:
scope :module => 'long/module/path' do
resources :model, :as => :model
end
scope :module => 'long' do
scope :module => 'module' do
scope :module => 'path' do
resources :model, :as => :model
end end end
或2:
scope :module => 'long/module/path' do
resources :model, :as => :model
end
scope :module => 'long' do
scope :module => 'module' do
scope :module => 'path' do
resources :model, :as => :model
end end end
这就是你想要的。我知道这是一个老问题,但其他人误解了你的问题,没有解决你的问题 您需要覆盖model_name方法,如下所示:
class Long::Module::Path::Model < ActiveRecord::Base
def self.model_name
ActiveModel::Name.new(Long::Module::Path::Model, nil, "YourNewModelName")
end
end
class Long::Module::Path::Model
这是我的功劳。不,对不起,我没有工作。。。现在有很多路由错误。不,你不理解我;)我想使用model_path(@model)访问我的模型,而不是使用long_module_path_model(@model)。似乎不起作用。也许上面的修订版本更好。