【发布时间】:2015-05-05 18:15:01
【问题描述】:
这是我config/routes.rb的一部分
require 'resque/server'
Rails.application.routes.draw do
get 'tools/index', as: :tools
get 'search/index', as: :search
devise_for :admin_users, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)
authenticate :admin_user do
mount Resque::Server.new, at: '/admin/jobs'
end
# ...
end
我刚刚了解到由命名的非资源路由生成的 URL 方法,在这种情况下,tools_path、tools_url、feed_path 和 feed_url 被所有 ActiveRecord 对象注入/访问。在 Rails 控制台中如下所示:
> user = User.first
...
> user.feed_path
=> "/feed"
> user.feed_url
=> "http://my-app.dev/feed"
> user.search_path
=> "/search/index"
> user.search_url
=> "http://my-app.dev/search/index"
我在 Ruby 2.0.0p598 上使用 Rails 4.2.1。我不知道这是否值得一提,最初该应用程序位于 Rails 4.1.x 中。我无法在新的 Rails 4.2.1 应用程序上重现它。所以绝对不是 Rails 错误。如何调试这个?
【问题讨论】:
-
什么在 Rails 4.2.1 中不起作用?
-
这里有什么问题?
-
问题是
user对象不应该有那些方法。
标签: ruby-on-rails activerecord ruby-on-rails-4.2