2014-09-29 50 views
0

我的控制器:Rails的,變量呈現爲`nil`

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 %>嗎?

回答

0

或者,如果你真的希望把你的行動wee,只要做到以下幾點:

  1. 重命名視圖模板wee.html.erb
  2. /config/routes.rb文件

    ,添加:

    resources :dates do 
        member do 
        get :wee 
        end 
    end 
    

這絕對比其他答案複雜。但是如果你堅持命名,它將解決問題。問題是命名不匹配,以便實例變量不傳遞給視圖。

2

可能是因爲您有wee方法在DataController中,但使用視圖爲show操作。

2

建立在你的控制器中的表演方法控制方法的名稱,然後再編寫查詢那裏。

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