下記の記事を参考に、全く同じファイル構成、記述でメタタグの設定をしました。
http://post.simplie.jp/posts/17
meta titleなどは個別ページでも上手く上書きされたのですが、OGP、TwitterCardのtitle、descriptionなどはデフォルトのままになってしまいます。
controllerのそれぞれのアクションで記事のとおりtitleを上書きするようにしているのですが、なぜでしょうか?
教えていただけますと幸いです。
app/controllers/concern/meta_taggable.rb:
Ruby
1module MetaTaggable 2 extend ActiveSupport::Concern 3 4 include ActionView::Helpers::AssetUrlHelper 5 6 included do 7 before_action :prepare_meta_tags 8 end 9 10 private 11 12 def prepare_meta_tags(options = {}) 13 base = t('meta_tags.base') 14 site = base[:site] 15 description = base[:description] 16 title = t("meta_tags.titles.#{controller_name}.#{action_name}", default: 'サイトの名前') 17 image = image_url('image.png') 18 19 defaults = { 20 site: site, 21 title: title, 22 description: description, 23 keywords: base[:keywords], 24 og: { 25 url: request.url, 26 title: title, 27 description: description, 28 site_name: site, 29 type: 'article', 30 image: image 31 }, 32 twitter: { 33 card: 'summary', 34 site: '@simpliejp', 35 title: title.presence || site, 36 description: description, 37 image: image 38 } 39 } 40 41 options.reverse_merge!(defaults) 42 43 set_meta_tags(options) 44 end 45end
Ruby
1ja: 2 meta_tags: 3 base: 4 site: サイト名 5 description: サイトの説明
下記でそれぞれ上書きしていますが、meta titleしか上書きできていません。
topics_controller.rb
Ruby
1def show 2 @topic = Topic.find(params[:id]) 3 prepare_meta_tags(title: @topic.text.truncate(35), description: @topic.text) 4end
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/08 13:15
2017/11/08 14:51
2017/11/08 14:52
2017/11/09 07:23