尝试查看文章时出错

时间:2017-09-10 01:34:54

标签: ruby-on-rails cloud9-ide cloud9

我在进入articles / new时遇到此错误。

enter image description here

我的代码:

new.html.erb:

<h1>Create an article</h1>
<%if @article.error.any? %>
<ul>
    <% @article.errors.full_messages.each do |msg| %>
    <li> <%= msg %> </li>
</ul>



<%= form_for @article do |f| %>

<p>
    <%= f.label :title %>

    <%= f.text_field:title %>

</p>
<p>
    <%= f.label :description  %>
    <%= f.text_area :description %>

</p>
<p>
    <%= f.submit %>

</p>
    end

我的articles_controller.erb文件:

class ArticlesController < ApplicationController

   def new
     @article = Article.new 
   end

   def create
     @article = Article.new(article_params)
     if  @article.save
       flash[:notice] = "Article was submitted succsefully"
       redirect_to (@article)
     else
       render :new
     end 
   end

    private 
    def article_params 
       params.require(:article).permit(:title, :description)
    end
end 

如果有帮助,请问我任何其他文件

2 个答案:

答案 0 :(得分:2)

问题应该是&#34;结束&#34;您的new.html.erb文件上的单词。您错过了<%周围的%> end

请注意,视图中的所有ruby代码都必须位于<% %><%= %>内。

答案 1 :(得分:0)

你的erb文件有很多错误

  • if @article.errors.any?不是if @article.error.any?
  • 你没有关闭if和each的块,你也正在错误地关闭表单块。

检查下面的代码。

<h1>Create an article</h1>
<% if @article.errors.any? %>
  <ul>
    <% @article.errors.full_messages.each do |msg| %>
      <li> <%= msg %> </li>
    <% end %>
  </ul>
<% end %>
<%= form_for @article do |f| %>
  <p>
    <%= f.label :title %>
    <%= f.text_field:title %>
  </p>
  <p>
    <%= f.label :description  %>
    <%= f.text_area :description %>
  </p>
  <p>
    <%= f.submit %>
  </p>
<% end %>