在 rails 上的 ruby 中,我可以在一个控制器中添加多个资源吗?
In ruby on rails, can I add more than one resources in one controller?
在 rails 的 ruby 中,我可以在一个控制器中添加多个资源吗?
因为,如果我在一个控制器中添加多个资源,那么在一个视图文件中就会有多个创建、更新、索引.. 操作和 html.erb 文件。那么如果我想在一个控制器中设置多个资源怎么办?那些同名动作如何成功存在于一个文件中?
你能做到吗?当然。您可以:
- 在方法名称上使用 postfix/prefix:
update_lecture
、update_speaker
等
- 使用不同的 id 字段和逻辑来查看更新哪一个,例如
lecture_id
和 speaker_id
.
但是……你想这样做吗? 否!
想想逻辑,稍微简化一下,默认是:
[controller one] -> [model one]
[controller two] -> [model two]
[..etc..]
但现在变成了:
/-> [model one]
[controller one] --
\-> [model two]
最终会变成:
/-> [model one]
[controller one] --
\-> [model two]
/-> [model three]
[controller two] ---> [model four]
\-> [model five]
/-> [model six]
[controller three which was added later] -
\-> [model three again because oops I forgot
that it was already in controller two]
有一个简单易懂的从控制器到底层模型的明显映射。这很好!当你有一个像 /speaker/42
这样的 URL 时,它可以很容易地理解涉及什么方法和 类。但是当你使用你所要求的方案时,所有的赌注都被取消了。 /speaker/42
可以在您的应用程序中 任何地方 结束。
还要记住,在 Rails 上使用 Ruby 的一个巨大优势是基本上每个 RoR 应用程序看起来都或多或少相似。这太棒了,因为如果我的同事正在度假,我可以启动 "his" 我以前从未见过的应用程序并修复客户刚刚调用的严重错误!
在 RoR 中做单一的事情有一些很好的理由。但这绝对不是其中之一;-)
在 rails 的 ruby 中,我可以在一个控制器中添加多个资源吗? 因为,如果我在一个控制器中添加多个资源,那么在一个视图文件中就会有多个创建、更新、索引.. 操作和 html.erb 文件。那么如果我想在一个控制器中设置多个资源怎么办?那些同名动作如何成功存在于一个文件中?
你能做到吗?当然。您可以:
- 在方法名称上使用 postfix/prefix:
update_lecture
、update_speaker
等 - 使用不同的 id 字段和逻辑来查看更新哪一个,例如
lecture_id
和speaker_id
.
但是……你想这样做吗? 否!
想想逻辑,稍微简化一下,默认是:
[controller one] -> [model one]
[controller two] -> [model two]
[..etc..]
但现在变成了:
/-> [model one]
[controller one] --
\-> [model two]
最终会变成:
/-> [model one]
[controller one] --
\-> [model two]
/-> [model three]
[controller two] ---> [model four]
\-> [model five]
/-> [model six]
[controller three which was added later] -
\-> [model three again because oops I forgot
that it was already in controller two]
有一个简单易懂的从控制器到底层模型的明显映射。这很好!当你有一个像 /speaker/42
这样的 URL 时,它可以很容易地理解涉及什么方法和 类。但是当你使用你所要求的方案时,所有的赌注都被取消了。 /speaker/42
可以在您的应用程序中 任何地方 结束。
还要记住,在 Rails 上使用 Ruby 的一个巨大优势是基本上每个 RoR 应用程序看起来都或多或少相似。这太棒了,因为如果我的同事正在度假,我可以启动 "his" 我以前从未见过的应用程序并修复客户刚刚调用的严重错误!
在 RoR 中做单一的事情有一些很好的理由。但这绝对不是其中之一;-)