我的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
保存方法失败后,我需要重定向到brands show.html.erb视图,该视图通过id 查找品牌并显示有关它的信息。
问题:
- 这是正确的做法吗
- 如果用户手动传递 server_id 参数,如何防止它执行(SQL 注入)?或者我应该如何检查和显示错误?
- 我如何
brands/show
在表单外的视图中显示错误(因为我将表单存储在<a data-form="...">
属性中,所以用户在点击链接之前看不到表单。甚至更多,我使用form_for([@brand,@brand.send(:products).klass.new])
)