Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.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 如何在响应中设置域[“设置cookie”]_Ruby On Rails_Ruby_Cookies - Fatal编程技术网

Ruby on rails 如何在响应中设置域[“设置cookie”]

Ruby on rails 如何在响应中设置域[“设置cookie”],ruby-on-rails,ruby,cookies,Ruby On Rails,Ruby,Cookies,问题是,这段代码运行得非常好: response["set-cookie"]="cookieName=#{@cookieValue.split.join}" 我可以用正确的名称和内容设置cookie(是的,split.join也正确)。但我也需要设置一个域 我的网站的域名如下:mysubdomain.mywebsite.com 但是我需要为域名mywebsite.com设置cookie 如果我这样添加,cookie就不存在了: response["set-cookie"]="cookieNam

问题是,这段代码运行得非常好:

response["set-cookie"]="cookieName=#{@cookieValue.split.join}"
我可以用正确的名称和内容设置cookie(是的,split.join也正确)。但我也需要设置一个域

我的网站的域名如下:mysubdomain.mywebsite.com

但是我需要为域名mywebsite.com设置cookie

如果我这样添加,cookie就不存在了:

response["set-cookie"]="cookieName=#{@cookieValue.split.join};Path=/;Domain=mywebsite.com"
我需要用response[“set cookie”]设置cookie,因为它是唯一适用于我的长字符串的方法。我尝试了各种方法,但我需要使用这种方法


所以问题是:如何使用response[“set cookie”]设置cookie来设置域?

好吧,我更喜欢在这里使用初始值设定项。创建一个新文件
config/initializers/cookies.rb
,并将以下代码放在那里:

options = {
  key: 'your_cookie_name',
  domain: 'your_domain'
}

Rails.application.config.session_store :cookie_store, options

这将使您的cookie相关配置在一个位置,尽管这不是强制性的。您仍然可以使用
domain
选项为您的cookie指定域名。

我无法使其正常工作。我认为Rails有一些安全机制可以防止这种情况(但从子域为域设置cookie是正确的)

但我可以通过javascript实现这一点:

document.cookie = "#{@cookieName}=#{@cookieContent};domain=yourdomain.com"

一行代码,工作完美。只需将其放在您的视图中,或将其分离并在application.js中要求它。我在子域上,但最终可以为父域设置cookie。

谢谢,但请阅读问题。我不想为我的主cookie设置域。就为了那个。我需要使用response[“set cookie”]就像
response
一样,您可以访问
cookies
对象来设置响应cookies<代码>[在此处阅读更多内容]()。请重新阅读。我知道cookies[“cookieName]等。我必须使用response[“set cookie”]你能说得具体点吗?我已经阅读了文档。如果它能回答我的问题,我就不会这样问了。谢谢。