Answers:
您可以rake routes
直接向他们展示。
在Rails控制台中,您可以致电app.post_path
。这将适用于Rails〜= 2.3和> = 3.1.0。
app.teh_path
仍可在Rails 4.0中使用,对于将引擎路径与主要应用程序路径分开非常有用。
mount Spree::Core::Engine, :at => '/'
,则可以通过引擎名称访问路径,例如app.spree_core_engine.some_path
。或者,如果将“ engine_name”配置为类似于此代码中的内容,则可以这样做app.spree.some_path
。
host
像这样添加参数:app.article_url(my_article, host: 'mydomain.com')
你也可以
include Rails.application.routes.url_helpers
从控制台会话内部访问助手:
url_for controller: :users, only_path: true
users_path
# => '/users'
要么
Rails.application.routes.url_helpers.users_path
Rails.application.routes.url_helpers.users_path
吗?
您随时可以path_helpers
在控制台中检查输出。只需将助手与app
app.post_path(3)
#=> "/posts/3"
app.posts_path
#=> "/posts"
app.posts_url
#=> "http://www.example.com/posts"
请记住,您的路线是否以名称分隔,例如:
product GET /products/:id(.:format) spree/products#show
然后尝试:
helper.link_to("test", app.spree.product_path(Spree::Product.first), method: :get)
输出
Spree::Product Load (0.4ms) SELECT "spree_products".* FROM "spree_products" WHERE "spree_products"."deleted_at" IS NULL ORDER BY "spree_products"."id" ASC LIMIT 1
=> "<a data-method=\"get\" href=\"/products/this-is-the-title\">test</a>"
spree
例子,你是一个从天上掉下来的天使。
app.get "/"
instance_eval之类的所需方法,将虚假请求添加到您的应用程序对象中 ,因为它们现在默认情况下受保护。就像这样:app.instance_eval{ post_path(post) }