如果在显示操作时没有传递ID

时间:2017-09-14 07:47:45

标签: ruby-on-rails

有没有办法使用current_page?检查用户是否在帖子/ x,其中x是任何数字?我正在尝试使用facebook的OG元标记但是我只需要在用户处于我的帖子控制器的show动作时显示它们。

我目前拥有的内容(由于缺少ID而产生错误):

<%if current_page?(controller:"posts",action:"show")%>
<meta property="og:title" content=" <%= @post.title %>" />
<meta property="og:description" content="<%= @post.body.html_safe %>" />
<meta property="og:image" content="<%=URI.join(request.url,@post.news_image.url) %>" />
<%end%>

我打算将它放在我的application.html.erb的Header部分,因此需要找到一种方法来确定当前页面是否为show动作。关于如何使用current_page或任何其他解决方案的任何想法?

1 个答案:

答案 0 :(得分:2)

我不知道你的current_page怎么样?方法已定义,但您只需检查params控制器和操作即可轻松实现,例如:

<% if params[:controller] == 'posts' && params[:action] == 'show' %>
  <meta property="og:title" content="<%= @posts.id %>" /> <!-- id as example -->
<% end %>