我想按如下方式设置路线
/url/http://google.com
至urls
控制器和index
操作。我现在routes.rb
的内容是:
match "urls/:url" => "urls#index"
路由似乎不起作用,因为在:url
。
答案 0 :(得分:34)
或者你可以使用Route Globbing:
match "urls/*url" => "urls#index"
您可以通过访问控制器中的值
params[:url]
参考: http://guides.rubyonrails.org/routing.html 搜索“Route Globbing”
答案 1 :(得分:18)
您可以执行与
类似的操作match "urls/:url" => "urls#index", :constraints => {:url => /.*/}
在Rails 2.3中的可能在Rails 3中工作,允许你匹配:url中的/(虽然,我现在无法测试它。)
答案 2 :(得分:1)
module Entity
# create the class instance variable methods when this is included
def self.included klass
klass.singleton_class.send(:attr_reader, :rules)
end
def foo
puts self.class.rules
end
end
class Person
include Entity
attr_accessor :id, :name
@rules = [[:id, :int, :not_null],
[:name, :string, :not_null]]
end
class Car
include Entity
attr_accessor :id, :year
@rules = [[:id, :string, :not_null],
[:year, :int, :not_null]]
end