将字符串转换为包含中的哈希值

时间:2017-01-16 05:08:46

标签: ruby-on-rails ruby ruby-on-rails-4

我正在进行如下查询:

users = User.includes(:address, friends: [:address, :followers])

但是,包含部分中的部分将是一个字符串,即":address, friends: [:address, :followers]"(它来自Rails应用程序到Rails API)。是否可以将此字符串转换为所需的哈希值? eval()不起作用。

编辑(对于YAML):

def show
  str = "address, { friends: [ address, followers ] }"
  args = YAML.load("[ #{str} ]")
  user = User.includes(*args).find(params[:id])
  render :template => 'users/show'
end

1 个答案:

答案 0 :(得分:0)

不要让你的用户输入Ruby代码,而是使用YAML,这几乎是简洁和安全的解析:

str = "address, { friends: [ address, followers ] }"
args = YAML.load("[ #{str} ]")
user = User.includes(*args)