cookies_eu 开源项目教程
1、项目介绍
cookies_eu
是一个用于在 Rails 应用程序中添加欧盟 Cookie 同意提示的 Ruby Gem。它帮助开发者遵守欧盟关于 Cookie 使用的法规,确保用户在访问网站时能够明确同意使用 Cookie。该 Gem 提供了简单易用的方法来显示 Cookie 同意提示,并允许用户自定义样式和行为。
2、项目快速启动
安装
首先,在 Gemfile 中添加以下内容:
gem 'cookies_eu'
然后执行:
$ bundle install
生成安装文件
运行安装生成器:
$ bundle exec rails g cookies_eu:install
添加到应用
在 application.js
中添加:
//= require cookies_eu
在 application.css
中添加:
*= require cookies_eu
或者在 application.scss
中添加:
@import "cookies_eu";
使用
在视图中添加:
<%= render 'cookies_eu/consent_banner' %>
如果需要链接到 Cookie 解释页面,可以添加 link
参数:
<%= render 'cookies_eu/consent_banner', link: '/cookies' %>
如果需要在新标签页中打开链接,可以添加 target
参数:
<%= render 'cookies_eu/consent_banner', link: '/cookies', target: '_blank' %>
3、应用案例和最佳实践
自定义样式
如果需要自定义样式,可以使用以下类名:
.cookies-eu /* 主 div */
.cookies-eu-content-holder /* 内容 holder */
.cookies-eu-button-holder /* 按钮 holder */
.cookies-eu-ok /* 按钮 */
.cookies-eu-link /* 链接 */
自定义 HTML
如果需要自定义 HTML,可以在 cookies_eu
文件夹中创建一个部分视图 _consent_banner.html.erb
,并粘贴自定义的 HTML 内容。
回调函数
如果需要在用户同意 Cookie 消息时运行任意代码,可以注册一个回调函数:
document.addEventListener('cookies-eu-acknowledged', function() {
// 用户已同意 Cookie
// 如果用户已登录,可以发起 API 调用以记住他们的偏好
fetch('/api/remember_preference')
});
4、典型生态项目
cookies_eu
可以与其他 Rails 生态项目结合使用,例如:
- Turbolinks 5+: 该 Gem 支持 Turbolinks 5+,只需在
application.js
中按以下顺序引入:
//= require turbolinks
//= require cookies_eu
- js_cookie_rails:
cookies_eu
依赖于js_cookie_rails
,用于处理 Cookie 的读写操作。
通过这些结合使用,可以构建一个符合欧盟法规的、高性能的 Rails 应用程序。