我正在关注Ruby on Rails指南,当我想创建一篇新文章时,我在渲染部分时遇到错误:
表单中的第一个参数不能包含nil或为空
标记错误来自位于与索引位于同一位置的部分_form.html.erb:
<%= form_for @article do |f| %>
index.html.erb有链接:
<%= link_to 'New article', new_article_path %>
控制器:
def create
@article = Article.new(article_params)
@article.save
redirect_to @article
end
形成部分:
<%= form_for @article do |f| %>
<p>
<%= f.label :title %><br>
<%= f.text_field :title %>
</p>
<p>
<%= f.label :text %><br>
<%= f.text_area :text %>
</p>
<p>
<%= f.submit %><br>
</p>
<% end %>
new.html.erb呈现部分:
<h1>New article</h1>
<%= render 'form' %>
<%= link_to 'Back', articles_path %>
答案 0 :(得分:1)
您的控制器需要new
方法
def new
@article = Article.new
end
那样,form_for可以引用一个@article对象。
当您点击new
链接时,会执行new
操作并显示表单。只有在提交表单时才会执行create
操作。