我在进入articles / new时遇到此错误。
我的代码:
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
如果有帮助,请问我任何其他文件
答案 0 :(得分:2)
问题应该是&#34;结束&#34;您的new.html.erb
文件上的单词。您错过了<%
周围的%>
end
。
请注意,视图中的所有ruby代码都必须位于<%
%>
或<%=
%>
内。
答案 1 :(得分:0)
你的erb文件有很多错误
if @article.errors.any?
不是if @article.error.any?
检查下面的代码。
<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 %>