错误,同时运行在红宝石
问题描述:
我想实现服务器端验证,这样做,我收到了可变@value错误,同时运行在红宝石
@value = {"prev_school":{"name":"","class":"Nursery"},"sibling": {"name":""}}
@validate = {"prev_school":[{"name":["is_mandatory","is_alphabets"]}}
在@variable我已经定义了所需要的方法的形式。每个值循环被称为每个领域。我的问题是,当我运行下面的代码
@value.each do |key,val|
@validate.each do |k,v|
if k == key puts v end
end
end
我越来越指向if语句
syntax error, unexpected tIDENTIFIER, expecting kDO or '{' or '('
可能有人请帮助这一个错误。
干杯! :)
答
你想要的其中之一:
@value.each do |key,val|
@validate.each do |k,v|
if k == key
puts v
end
end
end
或
@value.each do |key,val|
@validate.each do |k,v|
puts v if k == key
end
end
你的版本是一个语法错误,因为Ruby并不知道你的意思是结束key
和puts
的if
之间所以它试图将key puts v
解释为==
的一个参数,但会让人感到困惑。
答
而你必须在Ruby 1.9中定义散列或者使用低谷{“key”=>“value”}语法或{key:value}。所以,你变量应该是这样的:
@value =
{
"prev_school" => {"name" => "", "class" => "Nursery"},
"sibling" => {"name" => ""}
}
@validate = {"prev_school" => [{"name" => ["is_mandatory","is_alphabets"]}]}
在@Validate你错过}
两个最终]
之间。
非常感谢,这是对的!那些绞尽脑汁的时间太长了! – verdure