我有自定义方法购买内部订单控制器
我已经使用以下内容声明了一条特殊路线:即sell_order_path
resources :orders do
post 'buy', on: :member
end
这是我的表格标签
<%= form_tag(buy_order_path(@symbol)) do %>
<%= hidden_field_tag :stock_price, '55' %>
<%= label_tag :stock_quantity, 'Buy Quantity' %>
<%= text_field_tag :stock_quantity, params[:stock_quantity] %>
<%= submit_tag "Buy", class: "btn" %>
<% end %>
然而,当我点击提交时,它表示没有路由匹配[POST]“/orders/CC3.SI/buy”
当我使用
时它起作用<%= form_tag(buy_order_path('5')) do %>
但是,我需要一个动态的。知道怎么样?我有一种感觉,就是我如何创造这条路线。
顺便说一句@symbol现在只是一个变量,而不是一个对象
答案 0 :(得分:0)
这就是我做的事情
resource :order do
post :buy, on: :member
end
将生成
的路线/orders/:id/buy(.:format)
resource :order do
post :buy, on: :collection
end
将生成
的路线/orders/buy(.:format)
接下来,我将symbol参数插入到我的form_tag
中<%= form_tag(buy_order_path()) do %>
<%= hidden_field_tag :symbol, @symbol %>
<%= hidden_field_tag :stock_price, '55' %>
<%= label_tag :stock_quantity, 'Buy Quantity' %>
<%= text_field_tag :stock_quantity, params[:stock_quantity] %>
<%= submit_tag "Buy", class: "btn" %>
<% end %>
以上工作,但我不确定这是否是最好的方式,因为用户可能会看到隐藏的字段标记并编辑html值。是否有更好的方法将值传递给控制器?