Ruby on rails Rails:如何正确地为视图准备变量?
是否有在Rails中为视图准备变量的最佳实践? 基本上,我想知道,以像Ruby on rails Rails:如何正确地为视图准备变量?,ruby-on-rails,view,controller,Ruby On Rails,View,Controller,是否有在Rails中为视图准备变量的最佳实践? 基本上,我想知道,以像@campaign这样的散列为例,我是否应该 在视图或控制器中提取所需的值(例如列表\u id) @campaign = { "id"=>"8a9asd64b94", "type"=>"regular", "create_time"=>"2013-04-17T12:07:58+00:00", "rec
@campaign
这样的散列为例,我是否应该
在视图或控制器中提取所需的值(例如列表\u id
)
@campaign = {
"id"=>"8a9asd64b94",
"type"=>"regular",
"create_time"=>"2013-04-17T12:07:58+00:00",
"recipients"=> {
"list_id"=>"aecadsasd0b5",
"segment_text"=>"ljsadlkjasd"
}
}
通常,您会将整个对象发送到视图并访问其中的各个属性。比如说
# in controller
@post = Post.find(params[:id])
# in view
<h1><%= @post.title %></h1>
<p><%= @post.body %></p>
控制器中的#
@post=post.find(参数[:id])
#鉴于
在您的示例中,您应该将整个
@campaign
对象发送到视图中,并访问其中的各个组件。您通常会将整个对象发送到视图中,并访问其中的各个属性。比如说
# in controller
@post = Post.find(params[:id])
# in view
<h1><%= @post.title %></h1>
<p><%= @post.body %></p>
控制器中的#
@post=post.find(参数[:id])
#鉴于
在您的示例中,您应该将整个
@campaign
对象发送到视图并访问其中的各个组件。理想情况下,您应该在控制器中执行查询并将其传递到视图。因此,在您的情况下,@campaign
应该在控制器中,您可以在视图中使用@campaign[“recipients”][“list_id”]
。理想情况下,您应该在控制器中执行查询并将其传递给视图。因此,在您的情况下,@campaign
应该在控制器中,您可以在视图中使用@campaign[“recipients”][“list_id”]
。您能解释一下原因吗?对于大型对象来说,不需要传递整个对象,并且违反关注点分离原则,在视图中进行复杂的查询,这不是特别重要吗?获取数据和初始化对象以保存数据发生在控制器中。视图只读取对象上的属性-视图中不会发生或应该发生复杂的查询。您能解释一下原因吗?对于大型对象来说,不需要传递整个对象,并且违反关注点分离原则,在视图中进行复杂的查询,这不是特别重要吗?获取数据和初始化对象以保存数据发生在控制器中。视图只读取对象上的属性-视图中不会发生或应该发生复杂的查询。