Rails 4路由参数和路径反转

时间:2016-03-03 23:31:35

标签: ruby-on-rails routes stripe-payments

我的应用程序环境是Rails 4,Ruby 2.1.8

我正在尝试在列表页面上添加Stripe checkout按钮,您可能知道, Stripe的结帐不需要与您的数据库进行任何交互,因此没有Charges模型。这也解释了为什么示例中的Stripe JS checkout的嵌入式ruby使用了form标签方法而不是方法的形式。

所以我只想传递列表ID并自行保存以供参考。但是我的Rails路由行为中有一些非常奇怪的东西:

的routes.rb

# stripe
resources :charges

.haml中的表单标记

= form_tag charges_path(@listing.id) do

无论我怎么戳,Param和Path总是被逆转

<form method="post" accept-charset="UTF-8" action="/111/charges">

我怎样才能到达下方呢?

<form method="post" accept-charset="UTF-8" action="/charges/111">

1 个答案:

答案 0 :(得分:0)

您需要更改for路径,以便Rails知道您传入的内容。

form_tag charges_path(id: @listing.id)