我正在进行如下查询:
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
答案 0 :(得分:0)
不要让你的用户输入Ruby代码,而是使用YAML,这几乎是简洁和安全的解析:
str = "address, { friends: [ address, followers ] }"
args = YAML.load("[ #{str} ]")
user = User.includes(*args)