首页 > 解决方案 > 如何使用 fb meta og 标签分享帖子描述

问题描述

我想使用 og meta 将我的帖子分享到 facebook 分享。一切正常,除了帖子的描述

我试图把 <meta property='og:description' content="<%= @post.description %>"></meta>,但我得到一个错误未定义的方法描述..

这是我的代码,请解决这个问题,谢谢你们

在我的 application.html.erb

<html prefix="og: http://ogp.me/ns#">
      <head>
        <title><%= yield(:page_title) %></title>
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <meta property="fb:app_id" content="<%= 1234567890 %>"></meta>
        <meta property="og:url" content="<%= request.original_url %>"></meta>
        <meta property='og:description' content="#{@post.description}"></meta>
        <meta property="og:type" content="website"></meta>
        <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
        <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
        <%= stylesheet_link_tag 'application', href="https://fonts.googleapis.com/css?family=Raleway:400,700" %>
    </head>

标签: ruby-on-railsruby-on-rails-4

解决方案


这意味着调用布局的控制器不提供@post 或@post 为零。

我猜那是你的布局文件?在这种情况下,帖子必须由使用应用程序布局的所有操作提供(在标准情况下,所有操作)

确保正确加载帖子:

   class MyController < ApplicationController
     def index
       @post = Post.find(params[:id])
     end
   end

或者在您的模板中创建一个条件:

   <% if @post %>
      <meta property='og:description' content="#{@post.description}"></meta>
   <% else %>
      <meta property='og:description' content="Some default description"></meta>
   <% end %>

推荐阅读