所以基本上,我有一个新视图,当输入失败时,我希望视图使用先前输入的数据重新渲染。出于某种原因,除了form_for帮助器中的collection_selects之外,所有内容都会加载原始请求的数据。我根本不确定为什么。
<%= form_for(@match) do |f| %>
<b> Winner </b>
<%= f.collection_select :user0_id, User.order(:name),:id,:name, include_blank: true %>
<b> Loser </b>
<%= f.collection_select :user1_id, User.order(:name),:id,:name, include_blank: true %>
<b> Score </b>
<%= f.select :score, (0..21) %>
<b> Password </b>
<%= f.password_field :password %>
<%= f.submit "Submit match", class: "btn btn-lg btn-primary" %>
<% end %>
和我的控制员:
def new
@match = Match.new
end
def create
@match = Match.new(match_params)
if !match.save?
flash.now[:notice] = "Match was not saved!"
render :new
else
# success code here
end
我验证了使用所有正确值发送了params哈希,但由于某种原因,它不会自动填充collection_select。非常感谢任何帮助。