fly*_*llo 2 ruby-on-rails ruby-on-rails-3
我正在使用Rails第4版(Rails 3.2+)进行敏捷Web开发,我对button_to方法感到有些困惑.这本书以及我所做的所有其他谷歌搜索都说button_to使用了POST请求.但是,当我检查页面时,button_to似乎正在使用GET方法.
现在,我可能有这个错误,但我来自php背景和POST方法总是意味着数据被传递到服务器而没有url并通过阵列服务器端访问:
$_POST['form_item']
Run Code Online (Sandbox Code Playgroud)
此外,GET请求意味着通过URL传递数据:
someurl.com/somepage?DATA=data_value
Run Code Online (Sandbox Code Playgroud)
使用此button_to代码:
<%= button_to 'Add to Cart', line_items_path(product_id: product_id) %>
Run Code Online (Sandbox Code Playgroud)
这将成为表单输出:
<form action="/line_items?product_id=4" class="button_to" method="post">
<div>
<input type="submit" value="Add to Cart" />
<input name="authenticity_token" type="hidden" value="vGT1scGqasbQAMxYwofXHCM62MfSyM/pNty69Ep5t38=" />
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
此表单上的操作似乎是通过URL传递数据(?product_id = 4).虽然我可以清楚地看到"method ='post'",但这不是一个使用GET吗?
默认情况下,它使用POST方法.如果您需要GET,只需输入:
<%= button_to 'Add to Cart', line_items_path(product_id: product_id), :method => :get %>
Run Code Online (Sandbox Code Playgroud)
您可以检查rails的日志并验证它是否真的是POST请求.
| 归档时间: |
|
| 查看次数: |
3334 次 |
| 最近记录: |