首页 > 解决方案 > Ruby on Rails:呈现模板时遇到语法错误:

问题描述

晚安。我正在做 RoR 的入门指南,但是我遇到了一个问题:当我单击重定向到表单的新文章按钮时,Rails 会抛出“在呈现模板时遇到语法错误”。new.html.erb 代码是

<h1>New Article</h1>

<%= form_with scope: :article, url: articles_path, local: true do |form| %>

<%= if @article.errors.any? %>
    <div id="error_explanation">
        <h2>
            <%= pluralize(@article.errors.count, "error") %>
            prohibited this article from being saved:
        </h2>
        <ul>
            <% @article.errors.full_messages.each do |msg| %>
                <li><%= msg %></li>
            <% end %>
        </ul>
    </div>
<% end %>

    <P>
        <%= form.label :title %><br>
        <%= form.text_field :title %>
    </p>

    <p>
        <%= form.label :text %><br>
        <%= form.text_area :text %>
    </p>

    <p>
        <%= form.submit %>
    </p>
<% end %>

<%= link_to 'Back', articles_path %>

该代码与指南的代码相同,所以我不知道错误可能在哪里。如果有任何帮助,我还会附上错误截图。 当我想创建新文章时出现 Rails 错误消息

标签: ruby-on-railsruby

解决方案


这里有两个问题:

  • 条件语法错误if(不需要使用=

  • 屏幕截图中的额外\n字符

将您的 5 行更改app/view/articles/new.html.erb为:

<% if @article.errors.any? %>

<% %>执行 Ruby 代码

<%= %>执行 Ruby 代码并打印出来

另请阅读关于SO的差异


推荐阅读