gpt4 book ai didi

ruby-on-rails - 如何在 Ruby on Rails 中向现有模型添加第二个 Controller ?

转载 作者:行者123 更新时间:2023-12-03 16:20:08 25 4
gpt4 key购买 nike

我有一个模型,我想通过两组 View 公开它,并根据所使用的 View 执行不同的逻辑。

这方面的一个例子可能是有一个 Controller / View 集用于提供网络界面,另一个 Controller / View 集用于提供桌面或移动或其他类型的界面。

这是一个由两部分组成的问题:

1) 让多个 Controller 共享一个模型在风格上“可以”吗?

2) 我将如何向现有模型添加另一个 Controller ?

最佳答案

如果您只需要一两个 Action ,我建议将它们全部放在同一个 Controller 中。无需使事情过于复杂。如果您需要为每个 Controller 提供一整套 REST 操作,下面是我将如何实现的示例:

假设您正在运营一个也有群组的事件网站。事件可以在组的上下文中创建、编辑等,也可以完全独立进行。让我们看几个 URL,每个 URL 都需要完整的 REST 操作:

/groups/1/events  # Lists all events associated with a group
/events # Lists all events

这样设置路由:

resources :events
resources :groups do
resources :events, :controller => 'groups/events'
end

您现在将拥有两个 Controller 。一个位于 app/controllers/events_controller.rb 中,另一个位于 app/controllers/groups/events_controller.rb

最后一个重要的细节是命名第二个 Controller :

class Groups::EventsController < ApplicationController

您可以使用 rails 内置的生成器来做到这一点:

rails g controller 'groups/events'

关于ruby-on-rails - 如何在 Ruby on Rails 中向现有模型添加第二个 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7826643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com