方法问题以及url和path之间的区别

时间:2011-08-26 11:27:22

标签: ruby-on-rails ruby-on-rails-3

当我读到“Aglie web development with rails 4th”这本书时,我找到了代码

<%= button_to 'Add to Cart', line_items_path(:product_id => product) %>

如果我使用"line_items_url"并且代码不具有:method=>:post

等方法,会有什么区别

为什么?

2 个答案:

答案 0 :(得分:4)

path版本生成相对网址,例如/order/34/lines/,而网址版本会生成完整网址,例如http://localhost:3000/order/34/lines/

当用户点击邮件客户端或外部网络邮件中的链接时,第二种表单通常用于邮件程序。

在您的网站中,您不会发现任何差异。

此外,:method=>:post选项会向您的网络服务器发出一个帖子请求。它会通过添加一个javascript代码来实现,该代码将动态创建表单,向其添加参数并执行submit调用以使用post方法将浏览器发送到请求的页面。

答案 1 :(得分:0)

_url帮助程序生成包含协议和主机的URL 名称。 _path助手只生成路径部分。