删除拆分字符串的最后一个值

时间:2014-10-10 08:37:06

标签: ruby-on-rails ruby

我想查看一个哈希值,但最后一个值应该在那里:

参数发送给控制器

{
 "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应用于整个哈希值,除了这个值

3 个答案:

答案 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方法的返回值获取最后一个信息。