我的控制器是:
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 :(得分: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
,请执行以下操作:
wee.html.erb
在/config/routes.rb
文件中,添加:
resources :dates do
member do
get :wee
end
end
这绝对比其他答案更复杂。但如果你坚持命名,它将解决问题。问题是命名彼此不匹配,因此实例变量不会传递给视图。