2014-11-20 162 views
0

我的路线,看起来像这样:的Rails的form_tag嵌套嵌套资源

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

看起来不错,试试'的form_tag team_plan_charges_path(@team,计划),方法:POST' – 2014-11-20 21:05:57

+0

尝试'耙routes',结果粘贴。 – tokhi 2014-11-20 22:17:22

回答

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 
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 是一般的想法,因为你的路由看起来像/团队/:团队:ID /计划/:plan_id的数据类型/费用大概。

这里是一个example来看看。