具有单数父级的嵌套资源,具有...复数名称

时间:2013-04-03 04:29:12

标签: ruby-on-rails-3.2 routes form-for

用户有一组他们的'偏好'。资源应该是单一的,因为用户只有一组他们应该知道的偏好。名称应该是复数,因为该资源代表了过多的设置。我现在遇到路由问题,我相信它源于此。

我已宣布路线,

  resource 'preferences', only: [:show, :edit, :update] do
    resources :weight_based_rates
  end

运行rake routes的输出包含以下条目

    preferences_weight_based_rates GET      /preferences/weight_based_rates(.:format)          weight_based_rates#index
                                   POST     /preferences/weight_based_rates(.:format)          weight_based_rates#create
 new_preferences_weight_based_rate GET      /preferences/weight_based_rates/new(.:format)      weight_based_rates#new
edit_preferences_weight_based_rate GET      /preferences/weight_based_rates/:id/edit(.:format) weight_based_rates#edit
     preferences_weight_based_rate GET      /preferences/weight_based_rates/:id(.:format)      weight_based_rates#show

然后,在一个相关的部分我宣布一个这样的形式,

= form_for [@preference, WeightBasedRate.new], :remote => true do |f|

最后,我在Preferences#show

中得到了一个'NoMethodError
undefined method `preference_weight_based_rates_path' for #<#<Class:0x0000000572d2b0>:0x000000057b4800>

请注意,未定义的方法以单数形式涉及“首选项”。

也许我背叛了一定程度的天真,但这并不是Rails的魔力第一次让我失望:是否根据对模型奇点的假设构建一个单数名称?或者可能基于我传递实例的事实?导轨是否无法将碎片放在一起?我是否只是简单地安排了form_for的论据?

铁路混乱,还是我?

0 个答案:

没有答案