Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Heroku';s环境变量与Rails_Ruby On Rails_Heroku - Fatal编程技术网

Ruby on rails 使用Heroku';s环境变量与Rails

Ruby on rails 使用Heroku';s环境变量与Rails,ruby-on-rails,heroku,Ruby On Rails,Heroku,当在数据库中创建一个新项目时,我还存储了一个链接,可以引用该链接来共享该项目。我正在存储以下变量 self.shareLink = "http://localhost:3000/#{self.slug}" 我在使用典型的根函数时遇到问题,因为它排除了“http://”部分 由于它是硬编码的,我觉得我做错了什么,因为当我最终投入生产时,localhost需要更新 我正在使用Heroku,并开始尝试将self.slug与定义的环境变量连接起来,但是这也不正确,我想知道是否有人可以提供一些见解 试试

当在数据库中创建一个新项目时,我还存储了一个链接,可以引用该链接来共享该项目。我正在存储以下变量

self.shareLink = "http://localhost:3000/#{self.slug}"
我在使用典型的根函数时遇到问题,因为它排除了“http://”部分

由于它是硬编码的,我觉得我做错了什么,因为当我最终投入生产时,localhost需要更新

我正在使用Heroku,并开始尝试将self.slug与定义的环境变量连接起来,但是这也不正确,我想知道是否有人可以提供一些见解

试试看:

self.shareLink = request.protocol + request.host_with_port + '/' + self.slug
或者,如果您不需要该端口:

self.shareLink = request.protocol + request.host + '/' + self.slug
更新:

既然您现在已经声明您需要在模型中使用此功能,那么上述功能将不起作用,因为模型没有访问请求的权限

因此,您可以将其添加到应用程序控制器中,使其在任何地方都可用:

before_filter :save_request

def save_request
  Thread.current[:request] = request
end
然后在您的模型中执行以下操作以访问它:

def my_method
  request = Thread.current[:request]
  self.shareLink = request.protocol + request.host_with_port + '/' + self.slug
end

我得到了以下错误
未定义的局部变量或方法'request'
是否有我需要的gem-这也是在我的模型中定义的