Rails:如何正确地为视图准备变量?

时间:2016-02-26 15:09:24

标签: ruby-on-rails view controller

在Rails中为视图准备变量是否有最佳实践? 基本上我想知道,例如,我应该采用像@campaign之类的哈希 在视图或控制器中提取所需的值(例如list_id)?

@campaign = {
             "id"=>"8a9asd64b94", 
             "type"=>"regular", 
             "create_time"=>"2013-04-17T12:07:58+00:00", 
             "recipients"=> {
                             "list_id"=>"aecadsasd0b5", 
                             "segment_text"=>"ljsadlkjasd"
                            }
             }

2 个答案:

答案 0 :(得分:2)

您通常会将整个对象向下发送到视图并访问其中的各个属性。例如

# in controller

@post = Post.find(params[:id])

# in view

<h1><%= @post.title %></h1>
<p><%= @post.body %></p>

在您的示例中,您应该将整个@campaign对象向下发送到视图并访问那里的各个组件。

答案 1 :(得分:0)

理想情况下,您应该在控制器中执行查询并将其传递给视图。因此,在您的情况下,@campaign应位于控制器中,您可以在视图中使用@campaign["recipients"]["list_id"]