我需要在我们的数据库中存储用户搜索查询以跟踪搜索历史记录.我知道request.original_url会将查询字符串作为绝对URL.
http://www.example.com/search?utf8=%E2%9C%93&keywords=cars&view=grid
Run Code Online (Sandbox Code Playgroud)
我宁愿存储相对url路径.话虽如此,对于所有params的相对url,request.original_fullpath和request.fullpath之间有什么区别?他们似乎是一回事?
request.original_fullpath
/search?utf8=%E2%9C%93&keywords=cars&view=grid
Run Code Online (Sandbox Code Playgroud)
request.fullpath
/search?utf8=%E2%9C%93&keywords=cars&view=grid
Run Code Online (Sandbox Code Playgroud) 我正在为电子商务风格的应用程序开发标准购物车。在购物车中,我们具有允许用户更新商品数量的标准流程。我了解如何使用标准的post方法来将信息传递到控制器中的操作上。我不知道动词PATCH和PUT。
如果我的控制器中有以下自定义操作(通过POST调用),那么使用标准操作(例如“更新”)的PATCH是否被认为更安全?我仍在学习有关Rails和PATCH和PUT的更多信息,这让我有些困惑。
carts_controller
def update_cart_qty
@item = Item.find(params[:line_item][:item_id])
quantity = params[:line_item][:quantity]
# if qty is a not a number or negative set to 1
quantity = '1' if !quantity.match(/^\d+$/)
if quantity == '0'
result = current_cart.line_items.where("item_id = ?", params[:line_item][:item_id]).destroy_all
respond_to do |format|
format.js {flash.now[:notice] = "Removed \"#{@item.title}\" from your cart."}
format.html {flash[:error] = "Removed \"#{@item.title}\" from your cart."}
end
else
result = current_cart.add_item_and_update(@item, quantity, branch, current_user, price)
current_cart.save
respond_to do |format|
format.js {flash.now[:notice] = "Qty \"#{quantity}\" …Run Code Online (Sandbox Code Playgroud)