我想查看一个哈希值,但最后一个值应该在那里:
参数发送给控制器
{
"user"=>{"email"=>"a@a.fr,
lol@lol.fr"}
的方法
def set_users
@users = params[:user][:email]
logger.debug "#{@users.split(",").each { |e| puts e }}"
end
日志
a@a.fr
lol@lol.fr
["a@a.fr", " lol@lol.fr"]
关键是#each取一个不在哈希值中的值([" a@a.fr" ;," lol@lol.fr"])。我怎样才能将#each应用于整个哈希值,除了这个值
答案 0 :(得分:2)
我会这样做:
@users.split(",")[0..-2]
即,除了最后一个之外,还要采取一切措施。
所以:
logger.debug @users.split(",")[0..-2].join(', ')
似乎你只需要:
logger.debug @users
答案 1 :(得分:0)
您应该使用String#gsub方法,如下所示:
def set_users
email = params[:user][:email]
params[:user][:email] = email.gsub(/,.*/i, '')
end
答案 2 :(得分:0)
重写你的方法:
def set_users
@users = params[:user][:email].split(',')
@users.pop
end
然后您可以使用@users
而不是最后一个,并通过set_users
方法的返回值获取最后一个信息。