Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Routing Rails 3路线和模块_Routing_Routes_Ruby On Rails 3 - Fatal编程技术网

Routing Rails 3路线和模块

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

我在一个模块里有一个AR模型

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)。似乎不起作用。也许上面的修订版本更好。