是的,所以http://localhost:3000/reviews/new/5
告诉我的应用程序为 ID 为 5 的产品设置产品评论。但是,当我提交带有虚假信息的表单时,我会在“创建”操作中触发此代码:
@style = Style.find(params[:review][:style_id])
render 'new'
当页面重新加载时,我得到了新的 URL http://localhost:3000/reviews
,这很好,但是如果我再次提交虚假信息,那么在下一页加载 @style 将无法分配。
这是“新”操作中的代码:
@style = Style.find(params[:id])
@review = current_user.reviews.build(style_id: params[:id])
我确信这很简单。休息吃晚饭。
我通过在我的视图中添加一个 if 语句来修复它......我改变了:
<%= f.hidden_field :style_id, :value => params[:id] %>
到:
<% if params[:id] == nil %>
<%= f.hidden_field :style_id, :value => params[:review][:style_id] %>
<% else %>
<%= f.hidden_field :style_id, :value => params[:id] %>
<% end %>