Rails,变量呈现为`nil`

时间:2014-09-29 14:05:10

标签: ruby-on-rails ruby model-view-controller

我的控制器是:

require 'date'
class DateController < ApplicationController
def wee
        @thing=DateTime.now
        @va1=12345
end
end

我的观点是:

<h1>Date#show</h1>
<pre><%= @thing.inspect %></pre>
<pre><%= @va1.inspect %></pre>
<p>Find me in app/views/date/show.html.erb</p>

,结果页面为:

Date#show

nil

nil

Find me in app/views/date/show.html.erb

为什么我的变量没有显示?控制器中的命名范围是什么? 我可以致电<%= anothercontoller.variable %>吗?

4 个答案:

答案 0 :(得分:2)

可能是因为您在wee中使用了DataController方法,但使用了show动作的视图。

答案 1 :(得分:2)

在控制器中创建一个show方法,然后在那里编写查询。

 def show 
   @thing = DateTime.now
   @va1 = 12345
 end

答案 2 :(得分:1)

尝试重命名控制器方法名称来自&#34; wee&#34; =&GT; &#34;显示&#34;

答案 3 :(得分:0)

或者,如果您确实要将操作命名为wee,请执行以下操作:

  1. 将您的视图模板重命名为wee.html.erb
  2. /config/routes.rb文件中,添加:

    resources :dates do
      member do
        get :wee
      end
    end
    
  3. 这绝对比其他答案更复杂。但如果你坚持命名,它将解决问题。问题是命名彼此不匹配,因此实例变量不会传递给视图。