使用 gem Meta Tags
documentation声明将其放入 Controller 中:
set_meta_tags :title => 'Member Login',
:description => 'Member login page.',
:keywords => 'Site, Login, Members'
但是,这就是我所做的,不确定我是否需要在它周围包裹一些东西:
class ApplicationController < ActionController::Base
rescue_from CanCan::AccessDenied do |exception|
redirect_to main_app.root_path, :alert => exception.message
end
protect_from_forgery with: :null_session
before_filter :configure_devise_params, if: :devise_controller?
set_meta_tags :og => {
:title => 'The Rock',
:type => 'video.movie',
:url => 'http://www.imdb.com/title/tt0117500/',
:image => 'http://ia.media-imdb.com/rock.jpg',
:video => {
:director => 'http://www.imdb.com/name/nm0000881/',
:writer => ['http://www.imdb.com/name/nm0918711/', 'http://www.imdb.com/name/nm0177018/']
}
}
end
那么在我看来:
<%= display_meta_tags %>
但我收到错误 undefined method 'set_meta_tags'
最佳答案
我通常将它放在应用程序 Controller 中以保持 View 整洁。
# app/config/application.rb
# ...
before_action :please_set_meta_tags
def please_set_meta_tags
set_meta_tags title: 'website name',
description: 'website description',
og: {
title: 'website name',
type: 'website',
url: request.original_url,
image: { _: view_context.image_url('myimage1.jpg'), width: 1200, height: 630 },
{ _: view_context.image_url('myimage2.jpg'), width: 1200, height: 630 }
}
end
# ...
# app/views/layouts/application.html.erb
...
<head>
<%= display_meta_tags %>
...
我使用 view_context.image_url()
而不是 image_url()
来获取图像,因为我不在 View 中(因此 view_context
是必需的)。
并且记得安装 gem 后重新启动服务器! (它可能太明显以至于你忘记了它)
关于ruby-on-rails - Rails 元标记,Rails 4 中未定义的方法 `set_meta_tags',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31658330/