所以我在我的主 ruby 文件中设置了一个变量,它处理我所有的帖子和获取请求,然后使用 ERB 模板来实际显示页面。我将数据库处理程序本身传递到 erb 模板中,然后在模板中运行查询以获取所有(对于此示例)授权。
在我的主要红宝石文件中:
grants_main_order = "id_num"
get '/grants' do
erb :grants, :locals => {:db=>db, :order=>grants_main_order, :message=>params[:message]}
end
在 erb 模板中:
db = locals[:db]
getGrants = db.exec("SELECT * FROM grants ORDER BY $1", [locals[:order]])
这会产生一些非常随机的顺序,但是如果我用 id_num 替换 $1,它会正常工作。
这是打字问题吗?我怎样才能解决这个问题?使用带有#{locals[:order]} 的字符串替换也会得到时髦的结果。