我想使用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>
答案 0 :(得分:0)
这意味着调用布局的控制器不提供@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 %>