0

そうhttp://localhost:3000/reviews/new/5です、ID 5の商品の商品レビューを設定するようにアプリに指示します。ただし、偽の情報を含むフォームを送信すると、「作成」アクションでこのコードがトリガーされます。

    @style = Style.find(params[:review][:style_id])
    render 'new'

ページがリロードされると、問題のない新しいURLhttp://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 %>
4

1 に答える 1

0

これの代わりに:

<% if params[:id] == nil %>
    <%= f.hidden_field :style_id, :value => params[:review][:style_id] %>
<% else %>
    <%= f.hidden_field :style_id, :value => params[:id] %>
<% end %>

あなたは単にこれを行うことができます:

<%= f.hidden_field :style_id, :value => @style.id %>
于 2012-05-14T09:12:17.947 に答える