2016-11-16 54 views
-1

我试图使用的符号和甚至实例变量作为正式参数以红宝石正式的参数传递,但红宝石给出错误符号可以为

语法错误,意想不到的tSYMBEG,预计“)”

高清呼我(:值)

它是如何在的form_for管理轨道使用符号和实例变量作为第一个参数

<% form_for(@user) do |f| %> ... <% end %> 

OR

<% form_for(:user) do |f| %> ... <% end %> 

下面是我试图执行代码。

class Demo 

attr_accessor :name, :surname 

def initialize(name,surname) 
    @name = name 
    @surname = surname 

end 

def printThis 
    puts name 
    puts surname 

    callMe(name) 

end 

    def callMe(:value) 
     puts :value 
    end 

end 

d = Demo.new('abc','pqr') 

d.printThis 

回答

0

当您定义函数时,只有在您调用函数时,该参数不应该是符号。与callMe再试一次像

def callMe(value) 
    p value.class 
end 

callMe(:test) 
+0

这样定义,即使我们通过:测试为参数,将指定“测试”作为一种价值,而不是价值:测试符号指向,对不对? – Akshay

+0

我相信它应该仍然是由函数内的符号。试试这个更新的代码。 – atsui

+0

当它在外部写入时,它会打印符号,但是当它在类中时会给出错误 – Akshay