0

我有一个显示操作,我想quantity: 8通过查询的实例变量将值传递给视图。

这里,创建实例变量:

@organizer = Organizer.find(params[:id])

我想我可以通过使用创建虚拟属性attr_accessor或将值传递给params.

假设我对这两个选择是正确的,我有两个问题。

问题1:这两种方式中的任何一种都比另一种有明显的优势吗?

问题 2:我将如何将此值添加到视图可访问的参数中?

4

2 回答 2

1

正如 OP 所说,最好将控制器中生成的实例变量最小化,最好只有 1。

所以,关于如何使用quantity,我会做出如下决定:

  1. 如果这与模型无关,我将直接使用助手并在视图中调用此助手。

  2. 如果这与模型有关但与控制器无关,我将在模型中制作这样的方法。

  3. 如果这涉及模型和控制器,并且模式可能只有一次,我将再使用一个实例变量。这不好,但只有一次,所以原谅它。

  4. 如果这与模型和控制器有关,但预计会出现不止一次,我将使用 Presenter 或 Decorator 模式。

我不会考虑参数。

于 2013-09-18T09:30:48.677 回答
1

问题1:这两种方式中的任何一种都比另一种有明显的优势吗?

使用参数的方法不是一个真正的选择。如前所述,参数用于将参数从视图传递到控制器,反之亦然。明显的优势是 - 这就是它的惯例使用方式。

问题 2:我将如何将此值添加到视图可访问的参数中?

你甚至不尝试。如果您的意思是 - 设置参数并将其传递给视图。使用实例变量,@quantity = 8或者您可以为变量值设置全局变量或新表,然后使用该值设置@quantity

于 2013-09-18T09:40:06.017 回答