プロジェクトを作成するための基本的なフォームがあります...
<%= form_for(@project, :url => {:action=>'create'}) do |f| %>
<%= f.text_field(:name, {class: "form-control"}) %>
<%= f.text_area(:instructions, {class: "form-control"}) %>
<%= f.submit('Create Project') %>
<% end %>
コントローラーには、次の 2 つのアクションがあります。
def create
@project = Project.new( project_params )
if @project.save
flash[:notice]= "New project created!"
redirect_to(:action=>'index')
else
flash[:error]="Problem creating project"
redirect_to(:action=>'new')
end
end
def new
@project = Project.new()
end
フィールドが空になるのを防ぐいくつかの検証があります。フォームが失敗すると、再び「新しい」ページにリダイレクトされますが、@project
変数は常に空です。
なんで?