1
在if语句评估无我有Rails的3.0.10的index.js.erb的文件,该文件是这样的:故障,错误,而在js.erb
控制器的相关部分是像这样:
if @element != "chkbx"
@session[:open] = [email protected][:open]
else
@session = nil
end
@id = params[:id]
当@element != "chkbx"
,一切工作正常,但除此之外,我得到这个错误:
ActionView::Template::Error (You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.[]):
1: $('.loading').hide()
2: if ("<%= @id %>" && "<%= @session %>") {
3: alert("<%= @id %> <%= @session[:open] %>")
4: }
5:
6:
app/views/search/index.js.erb:3:in `_app_views_search_index_js_erb___1015507201_70338196455640_0'
app/controllers/search_controller.rb:32:in `index'
这不是很奇怪吗?不应该在js.erb中的if发现@session
是nil
时停止执行?我也尝试在控制器中使用@session = false
。
我有一个类似的问题,当我在代码行的开头注释掉了一个js.erb文件中的代码//
。代码仍然被评估并生成错误。
有没有什么我不明白js.erb文件?
感谢的很多!这是非常可以理解的!现在它正在工作。 :-)不得不从'<%= if'和'<%= end'中删除=。 –
对不起,我使用HAML,所以我不是很擅长ERB语法:) – iwasrobbed