小编Bry*_*n.I的帖子

Rails 4 - request.original_fullpath和request.fullpath之间有什么区别

我需要在我们的数据库中存储用户搜索查询以跟踪搜索历史记录.我知道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_fullpathrequest.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)

uri ruby-on-rails query-string ruby-on-rails-4

6
推荐指数
2
解决办法
3331
查看次数

Rails 4-最好使用PATCH或POST进行更新

我正在为电子商务风格的应用程序开发标准购物车。在购物车中,我们具有允许用户更新商品数量的标准流程。我了解如何使用标准的post方法来将信息传递到控制器中的操作上。我不知道动词PATCHPUT

如果我的控制器中有以下自定义操作(通过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)

post ruby-on-rails ruby-on-rails-4

4
推荐指数
1
解决办法
1587
查看次数

标签 统计

ruby-on-rails ×2

ruby-on-rails-4 ×2

post ×1

query-string ×1

uri ×1