错误,同时运行在红宝石

错误,同时运行在红宝石

问题描述:

我想实现服务器端验证,这样做,我收到了可变@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并不知道你的意思是结束keyputsif之间所以它试图将key puts v解释为==的一个参数,但会让人感到困惑。

+0

非常感谢,这是对的!那些绞尽脑汁的时间太长了! – verdure

而你必须在Ruby 1.9中定义散列或者使用低谷{“key”=>“value”}语法或{key:value}。所以,你变量应该是这样的:

@value = 
{ 
    "prev_school" => {"name" => "", "class" => "Nursery"}, 
    "sibling" => {"name" => ""} 
} 
@validate = {"prev_school" => [{"name" => ["is_mandatory","is_alphabets"]}]} 

在@Validate你错过}两个最终]之间。