2

products_controller.rbにコードがあります

        def create
          @product = Product.new(product_params)
          brand = Brand.find(params[:brand_id])
          @product.brand = brand

          if @product.save
            raise "OK"
          else
            @brand = Brand.find(params[:brand_id])
            render 'brands/show'
          end
        end

save メソッドが失敗した後、ブランドのshow.html.erbビューにリダイレクトする必要があります。これは、id でブランドを検索し、それに関する情報を表示します。

質問:

  1. それは正しい方法ですか
  2. ユーザーが手動で server_id パラメータを渡した場合、どのようにして実行を防止できますか (SQL インジェクション)? または、エラーを確認して表示するにはどうすればよいですか?
  3. フォーム外のビューにエラーを表示するにはどうすればよいですかbrands/show(フォームを<a data-form="...">プロパティに保存しているため、ユーザーはリンクをクリックするまでフォームを見ることができません。さらに、私は使用しますform_for([@brand,@brand.send(:products).klass.new]))
4

1 に答える 1

2

redirect_to Brands_path(@brand) を使用する

于 2015-06-17T11:43:21.030 に答える