我正在尝试弄清楚如何在路线文件中使用问题。
我有名为User,Project和Eoi的模型。
协会是:
用户
has_many :eois
项目
has_many :eois
EOI
belongs_to :user
belongs_to :project
我正在尝试创建一个系统来显示已在项目中提交的eois,以便它们仅对创建项目的用户可见。
另外,我想向每个用户展示用户所做的所有eois(无论他们在哪个项目上制作)。
我想我想要第一个场景的嵌套路由,然后我也想要第二个场景没有嵌套的eoi路由。
在我的routes.rb
中我有:
resources :projects do
# concerns: :eois,
member do
resources :eois
end
我也希望:
resources :eois
我该如何使这项工作?我无法理解这个http://api.rubyonrails.org/classes/ActionDispatch/Routing/Mapper/Concerns.html
中的例子我不明白这个例子中的值得称道的是模型,还是我需要编写的东西,以便能够在routes.rb文件中的两个地方有路由。
我的下一次尝试是尝试复制上述链接中的示例要点,我有
resources :eois#, only: [:index]
concern :eoiable do
resources :eois
end
resources :projects do
concerns :eoiable
end
我不确定我是否需要在某个地方制定定义才能使其正常工作。
答案 0 :(得分:0)
只有在您想要干燥路线时才需要路线问题。到目前为止,你只有一个路由重复(eoi
)所以......使用一个问题在这里是一种过度杀伤。
你真正想做的是拥有2个eoi
个控制器,其中一个将负责提供所有eoi
个,仅次于项目内的那个。
为了更好的可读性,我将命名空间 - 将一个eois_controller.rb
放在projects
文件夹中,并将其命名为Projects::EoisController
,第二个 - 作为顶级控制器,命名为{{1 }}。路线看起来像这样:
EoisController
当然,你可能想要在之后干掉这两个控制器。