【问题标题】:SyntaxError in Posts#index?Posts#index 中的语法错误?
【发布时间】:2014-02-01 04:50:52
【问题描述】:

我收到这个特殊错误: C:/Sites/rails_projects/blog/app/views/posts/index.html.erb:26:语法错误,意外的keyword_ensure,期待keyword_end C:/Sites/rails_projects/blog/app/views/posts/index.html.erb:28:语法错误,意外$end,期待keyword_end

这里是完整的索引视图

    <!DOCTYPE html>
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

<%= will_paginate %>
<% @posts.each do |post| %>
  <div class="container", "relative">
    <div class="row-fluid">
      <h1><%= post.Title %></h1>
        <p><%= post.Post %></p>
        <% if is_admin? %>
        <p><%= link_to 'Show', post %></p>
        <p><%= link_to 'Edit', edit_post_path(post) %></p>
        <p><%= link_to 'Destroy', post_path(post),
        method: :delete, data: { confirm: 'Are you sure?'} %></p>

    </div>
  </div>
  <% end %>
  <%= will_paginate %>
<% if is_admin? %>
<%= link_to 'New Post', new_post_path %>
<% else %>
<% end %>

我认为原因是is_admin?

这是我的 session_helper。

def sign_in(user)
    cookies.permanent[:remember_token] = user.remember_token
    current_user = user
  end

  def signed_in?
    !current_user.nil?
  end

  def current_user=(user)
    @current_user = user
  end

  def current_user
    @current_user ||= User.find_by_remember_token(cookies[:remember_token])
  end

  def current_user?(user)
    user == current_user
  end


  def is_admin?
    signed_in? ? current_user.admin : false
  end

  def sign_out
    current_user = nil
    cookies.delete(:remember_token)
  end

我不确定错误在哪里?

【问题讨论】:

  • 试试(signed_in? ? current_user.admin : false) 但不是这个功能
  • 显示完整的 index 视图
  • 刚刚上传,我收到语法错误,但我不确定它来自哪里。
  • 您的 posts.each 以及如果紧跟在

    之后的管理语句需要以结尾结束,那么您只有一个。
  • 应该更仔细地使用 tab 以避免丢失关闭块,相信我会知道的。

标签: ruby-on-rails


【解决方案1】:
<% **@posts.each do |post|** %>
  <div class="container", "relative">
    <div class="row-fluid">
      <h1><%= post.Title %></h1>
        <p><%= post.Post %></p>
        <% **if is_admin?** %>
        <p><%= link_to 'Show', post %></p>
        <p><%= link_to 'Edit', edit_post_path(post) %></p>
        <p><%= link_to 'Destroy', post_path(post),
        method: :delete, data: { confirm: 'Are you sure?'} %></p>

    </div>
  </div>
  <% **end** %>
  <%= will_paginate %>

您打开了两个带有星号的块,但只有一个结束语句(也是带有星号的)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多