'Inherited resources'gem中'end_of_association_chain'的机制是什么?

时间:2014-06-27 08:12:27

标签: ruby-on-rails inherited-resources

继承资源是一个强大的宝石,我可以用它来避免很多重复的事情。 但我仍然不明白为什么它可以通过end_of_association_chain获取一个对象,即使我没有传递与其belongs_to模型相关的任何内容

1 个答案:

答案 0 :(得分:0)

尝试查看Rails路线。 AFAIK end_of_association_chain根据路线构造其值。

/book/1/pages->您将在end_of_association_chain中获得第一本书的页面。

另请参阅:https://github.com/activeadmin/inherited_resources#overwriting-defaults

  

end_of_association_chain嵌套全部后返回您的资源   关联和范围(有关此内容,请参见下文)。

我没有研究end_of_association_chain源代码,但我想这里的“关联”和“作用域”恰好意味着构建路径的关键字,例如:

resource :production, only: [:update], controller: :production, selected_navigation_category: 'production', path: 'marketing' do
  resources :photos, only: %i[index update destroy] do
    collection do
      get 'set/:photo_set', to: :photo_set, as: :photo_set

我有一个PhotosController#photo_set方法,其中包含end_of_association_chain。我还想知道-这个值是什么-直到我进入路由文件。