首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问Rakefile中的命名路由

访问Rakefile中的命名路由
EN

Stack Overflow用户
提问于 2013-07-23 08:45:15
回答 3查看 5.2K关注 0票数 11

我有一些命名的路由,像这样的rake routes

代码语言:javascript
复制
birthdays GET    /birthdays(.:format)                             birthdays#index

在rakefile中,我只是希望能够像在我的视图中一样调用birthdays_url

代码语言:javascript
复制
task :import_birthdays => :environment do
  url = birthdays_url
end

但是我得到一个错误的undefined local variable or method 'birthdays_url' for main:Object

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-23 08:55:29

您可以在rake任务中使用以下示例代码:

代码语言:javascript
复制
include Rails.application.routes.url_helpers
puts birthdays_url(:host => 'example.com')

或者,您可以在rake任务中使用以下示例代码:

代码语言:javascript
复制
puts Rails.application.routes.url_helpers.birthdays_url(:host => 'example.com')

如果您只需要URL的路径部分,则可以不使用(:host => 'example.com'),而使用(:only_path => true)。所以,这将只给你/birthdays而不是http://example.com/birthdays

您需要(:host => 'example.com')(:only_path => true)片段,因为rake任务不知道这一位的信息,并且在没有它的情况下会给出这个错误:

代码语言:javascript
复制
Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true
票数 22
EN

Stack Overflow用户

发布于 2015-07-11 01:49:18

对于Rails4,在rake任务的顶部包含域的代码

代码语言:javascript
复制
include Rails.application.routes.url_helpers
default_url_options[:host] = 'example.com'
票数 4
EN

Stack Overflow用户

发布于 2013-07-23 08:48:46

使用以下命令:

代码语言:javascript
复制
Rails.application.routes.url_helpers.birthdays_url

或者说得简单一点:

代码语言:javascript
复制
include Rails.application.routes.url_helpers
url = birthdays_url
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17799735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档