代码如下:
class MulticastController < ApplicationController
@@groups=Array.new
@@groups=[]
@@group_name=Array.new
@@group_name=[]
def getResults
@@groups
@@group_name
if request.post?
if params[:creategroup] #makes a new group
@@groups << searchHash
@@group_name << params[:groupname]
if @@groups.size>5
@@groups[0].delete
@@group_name[0].delete
end
end
if params[:displaygroup]
@@group_name.each_with_index do |gr,i|
if(gr==params[:inputgroupname])
@results=Person.where(@@groups[i]).to_a
render :new_results, :layout => false
end
end
end
关于我的观点部分-
<div class="span6 service">
<legend>Groups</legend>
<% group_name.each do|grp|%>
<%= grp %><br>
<%end %><br><br>
<input type="hidden" name="displaygroup" value="1">
<div>
<input type="text" name="inputgroupname" value="inputgroupname">
</div>
我不知道该怎么做,它给我一个“ActionView::CompiledTemplates 中未初始化的类变量@@group_name”错误。
我希望变量 group 和 group_name 对所有多播实例都是通用的。卡住了。
最佳答案
尝试
def getResults
@@groups ||= []
@@group_name ||= []
代替
def getResults
@@groups
@@group_name
运算符 ||=
将初始化您的变量,但前提是它尚未初始化。
请听听 Ivan Shamatov 关于代码风格和模式的评论。
关于ruby-on-rails - ruby on rails 中的类变量未初始化错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16998065/