Re: [问题] Rails route 的 prefix 字段

楼主: tonytonyjan (南洋大兜虫)   2014-10-16 23:24:12
这么久没回(被放置 Play 了吗XD),避免有其他人搞错,
想想还是来解释一下。
你的引述的程式码片段只有在挂载 Rails Engine 并且使用其他 engine 的 URL
helper 才有可能用到。
举例来说当你在 routes.rb 这样写:
Rails.application.routes.draw do
mount Blog::Engine => "/blog"
end
而你的 engine 长这样:
Blog::Engine.routes.draw do
resources :posts
end
有时候因为 URL helper 在不同的 engin 会撞名,所以会需要特别指定使用哪个
routes proxy:
所以会需要这样写:
polymorphic_url([blog, post])
当第一次使用 blog 时,会加载你引述的档案,
至于哪里会 method_missing,那就是 polymorphic_url 里面的事了。
无论如何,还是想重申一次:
如果没有挂载 engine,则 URL helper 和 method_missing 的用法是完全没有关系的。
以上,与你分享 =)
※ 引述《JokerCatz (JokerCatz)》之铭言:
: ccc~ 感谢,我一直以为是method_missing的实作,所以是method产生器
: 刚看了一下应该还是method missing类,只不过是即时generate,就不用二次字串分析
: 类似这种code
: http://apidock.com/rails/ActionDispatch/Routing/RoutesProxy/method_missing
: 简单的来说初次使用还是method missing,之后产出该名method,
: 然后因为method missing规则是需要设定到正式的method上而非自干解决掉
: 就会call到你说的那边去做产生就是
: &...另外的 RailsFun.tw 本身就是网址了 Orz"
: ※ 引述《tonytonyjan (南洋大兜虫)》之铭言:
: : 我认为不是 method_missing 的用法
: : # actionpack/lib/action_dispatch/routing/route_set.rb:271
: : def define_named_route_methods(name, route)
: : define_url_helper route, :"#{name}_path", route.defaults, name, PATH
: : define_url_helper route, :"#{name}_url", route.defaults, name, FULL
: : end
: : 还是我误会了你的意思?

Links booklink

Contact Us: admin [ a t ] ucptt.com