Rails路由新关联路径

Rails Routing new association path

我有家庭,我有代币 -- 家庭拥有代币

我有一个家庭索引并为我使用的家庭创建一个新令牌:

 = link_to 'Issue', new_household_token_path, class: 'btn'

佣金路线显示:

 new_household_token GET  /households/:household_id/tokens/new(.:format)     tokens#new

但我得到:

 No route matches {:action=>"new", :controller=>"tokens"}

但看起来我确实有那条路线

令牌控制器有:

def new
    @token = Token.new

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @token }
    end
end

我做错了什么?

您错过了 :household_id。通过查看路线,您可以看到必须包含 household_id /households/:household_id/tokens/new(.:format) 才能到达您的 TokensController#new。将您的 household_id 传递给您的路线,例如(只要 @household 不是 nil:

= link_to 'Issue', new_household_token_path(@household.id), class: 'btn'