将变量从控制器传递到轨道4中的视图

时间:2013-11-29 16:36:27

标签: ruby-on-rails templates ruby-on-rails-4 erb

我想将控制器中的变量值传递给视图,如下所示

  

controller(.rb)

redirect_to root_url, :some_var => 'true or false'
  

view(root_url.html.erb)

<% if :some_var %>
   #do something
<% else %>
   #do something else.

任何人都可以给我一个想法。提前谢谢。

2 个答案:

答案 0 :(得分:2)

然后将该变量作为查询字符串

传递
redirect_to root_url(foo: 'bar')

这将产生类似

的网址
example.com?foo=bar

另一种方法是使用flash对象

redirect_to root_url, notice: "This is some info to convey"

Flash传递临时变量:

flash[:foo] = 'bar'
redirect_to root_url

# View
<% if flash[:foo] %>
  <%= "This is #{flash[:foo]} value" %>

答案 1 :(得分:1)

执行此操作的最佳方法是渲染,而不是重定向,因为您还没有完成整个操作。然后在控制器操作中使用实例变量:

@some_var = true or false
render root_url

根:

if @some_var 
   do blah