Tag: 路线

当两个路由指向同一模型时,使用Devise resource_name发出问题

我有两条路线为我的api v1和v2指向同一个Devise模型,路由如下: scope :api do namespace :v1 do devise_for :users, :controllers => {:registrations => “devise/v1/users_registrations”, :sessions => “devise/v1/users_sessions”, :passwords => “devise/v1/users_passwords”} end end scope :api do namespace :v2 do devise_for :users, :controllers => {:registrations => “devise/v2/users_registrations”, :sessions => “devise/v2/users_sessions”, :passwords => “devise/v2/users_passwords”} end end 我的问题是当请求被发送到这些API中的任何一个时,Devise resource_name是’v1_user’或’v2_user’,但发送的参数具有params [‘user’]所需的值。 我从Devise helpers.rb devise_parameter_sanitizer方法中获取此信息。 当Devise :: ParameterSanitizer.new(resource_class,resource_name,params)params如下所示: result = […]

Rails路由和站点性能

站点速度是否与Rails应用程序的routes.rb文件中的命名空间/路由数量直接相关? 我正在处理一个包含30多个不同模型/实体的相当大的应用程序,并且大多数这些资源都有自己的路径。

Rails 3与成员路由错误

我在rails 3中有以下路线: resources :jobs do member do post :seller_job_submitted end end 以下表格 =form_for job, :url=>seller_job_submitted_job_path(job), :remote=>true do |f| 我知道这不是很安静,但现在这是一个停顿差距。 在任何情况下,我在提交表单时都会收到此错误 Started POST “/jobs/74/seller_job_submitted” for 127.0.0.1 ActionController::RoutingError (No route matches “/jobs/74/seller_job_submitted”): 但是当我运行rake routes | grep seller_job_submitted rake routes | grep seller_job_submitted ,我认为正确的结果出现了: seller_job_submitted_job POST /jobs/:id/seller_job_submitted(.:format) {:action=>”seller_job_submitted”, :controller=>”jobs”} 关于可能发生的事情的任何想法? 谢谢!

使用restful操作在rails控制器中自定义操作?

我在使用scaffold生成的控制器中创建自己的动作时遇到了一些麻烦。 我理解一切都映射到了宁静的动作,但是我正在构建一个用户控制器,用户可以登录/注销等,但是当我创建动作并在routes.rb中声明它时,当我访问用户/登录时出现此错误 Couldn’t find User with id=login 它尝试使用login作为ID参数,而不是将其用作操作。 的routes.rb match ‘users/login’ => ‘users#login’ 我觉得我在路线上做错了所以如果有人能帮助我那会很棒。 谢谢

devise user_root_path在生产中获得404’d但不是dev?

很奇怪,我知道但在生产中使用user_root_path不起作用。 当我点击链接myapp.com/user我得到一个404页面。 日志文件不显示吐出但尝试失败: Started GET “/user” for 123.125.146.23 at 2011-01-19 19:40:45 +0000 ActionController::RoutingError (uninitialized constant User::UsersController): 现在,查看有关此单位化常量的唯一方法是打开rails c并将常量输入控制台。 这是发生的事情: ruby-1.9.2-p136 :005 > User::UsersController (irb):5: warning: toplevel constant UsersController referenced by User::UsersController => UsersController 现在一些挖掘发现这个顶级警告可能会搞乱它。 但日志说bubkiss。 所以我改变了路线文件: devise_for :users namespace :user do root :to => “users#index” end resources :subdomains match ‘/user’ => ‘users#index’ 至: devise_for :users […]

虽然在佣金路线中有一条路线,但没有路线匹配

我得到奇怪的ActionController::RoutingError: No route matches 。 可以生成路线: > r = Rails.application.routes > r.generate controller: :items, action: :index, user_id:1 => [“/users/1/items”, {}] 它是在rake routes : $ rake routes user_items GET /users/:user_id/items(.:format) items#index POST /users/:user_id/items(.:format) items#create new_user_item GET /users/:user_id/items/new(.:format) items#new edit_user_item GET /users/:user_id/items/:id/edit(.:format) items#edit user_item GET /users/:user_id/items/:id(.:format) items#show PUT /users/:user_id/items/:id(.:format) items#update DELETE /users/:user_id/items/:id(.:format) items#destroy (…) 但我不承认: r.recognize_path “/users/1/items” […]

Rails嵌套路由的奇异​​资源

我在单一资源上有一个嵌套路由 map.resource :account, :controller => “users” do |page| page.resources :feeds end 我正在尝试制作一个表单来添加Feed。 我从这开始…… undefined method `feeds_path’ for # 所以我试试 undefined method `user_feeds_path’ for # 我想这是因为将它从“用户”重命名为“帐户”? 所以我试过了 `@/account/feeds.%23%3Cfeed:0x22ea5c0%3E’ is not allowed as an instance variable name 不确定那个错误意味着什么。 所以我已经使用了这样做: {:action=>:create} do |f| %> 这真的是最好的方式吗? 换句话说,在这种情况下是否无法使用命名路由?

如何检测Rails 3路由中的整数?

我想在rotues.rb中做一些额外的逻辑,这可能不属于那里,但它似乎对我最有意义。 我有两条相互矛盾的路线。 要原始: match ‘/videos/:browseby’ => ‘videos#browse’, :as => “browse_by” 其中:browseby正在查找字符串,例如“标签”,以按标签浏览video。 然而,(并且很可能看到了这一点)我也有我的基本节目资源(再次以原始forms): match ‘/videos/:id’ => ‘videos#show’, :as => “video” 其中:id正在查找videoID的整数。 有没有办法添加一些逻辑,如… match ‘/videos/:id’ => ‘videos#show’, :as => “video”, :format(:id) => :integer (这是我假设的rails语法,以帮助显示我正在寻找的内容。) 我知道我可以在Controller级别中修改它,但是在路由级别处理它更有意义。

如何路由用户配置文件URL以跳过控制器?

现在我的用户个人资料url如下: http://example.com/users/joeschmoe 这指向用户控制器中的show方法。 我理想的做法是提供如下用户个人资料url: http://example.com/joeschmoe 那么,什么样的路线和控制器魔法需要发生才能解决这个问题?

Ruby on rails应用程序root

如何更改rails应用程序以使控制器foo显示为应用程序根目录? 换句话说,现在所有的url看起来像host.com/foo / …我想摆脱foo,只需要host.com / …