我的路线看起来像这样:
resources :teams do
resources :plans do
resources :charges
end
...
我想使用form_tag
创建一个指向我的charges_controller
创建操作的表单。但我需要一些帮助...
我目前的表单看起来像这样(它只是一个按钮,提交是在javascript中完成的):
= form_tag team_plan_charges_path([@team, plan]) do
= content_tag "button", id: "customButton", class: "btn btn-primary" do
Select plan
这会导致以下错误:
No route matches {:action=>"index", :controller=>"charges" ... missing required keys: [:plan_id]
我不确定如何根据我的表单,任何想法正确设置form_tag
?
答案 0 :(得分:1)
它应该是这样的:
= form_tag @charge, team_plan_charge_path([@team, @plan]), method: :post do
= content_tag "button", id: "customButton", class: "btn btn-primary" do
Select plan
答案 1 :(得分:0)
我认为,team_plan_charges_path([@team, plan])
应该类似于team_plan_charges_path([@team, @plan, @charges])
其中@plan和@charges应该在你的收费控制器中,比如
@plan = @team.plans.new
@charges = @plan.charges.new
假设您在团队和计划和计划以及费用之间存在has_many关联。
我也假设该计划不是帮助中的某种方法,并且根据您的评论method: :post
这是一般的想法,因为您的路线看起来像/ team /:team:id / plan /:plan_id / charge可能。
以下是example。