动态获取Rails数据库查询

时间:2015-12-03 14:09:38

标签: javascript jquery ruby-on-rails ajax

有没有办法在rails中动态获取db结果?举个例子,我的所有城市都以id为索引。我想将id发送到给定城市名称的视图,就像这个Javascript方法(我知道这不起作用......)

function getCityId (city) {
  return <%= City.where(name => city) %>
end

我知道有使用ajax的解决方案,问题是ajax,据我所知,只适用于link_to和form_for,因为只有这些接受remote:true选项。我虽然关于创建一个隐形链接并启动一个&#34; click()&#34;在某些条件下,比如&#34; keydown&#34;什么的,但这显然是非常凌乱和严重的。另一种选择是对ajax进行硬编码,如下面引用的答案所示,但这很乏味且杂乱无章。

有没有办法使用简单的url_for或类似的帮助器或其他方式来动态获取db信息来执行ajax? (知道有一个类似的问题here,但我想如果我问一个更具体的问题,可能会有另一种解决办法。)

2 个答案:

答案 0 :(得分:0)

你看起来像这样: -

# application helper
def getCity(city)
    city = City.find_by_name(city)
end

然后,您可以直接从视图中调用: -

<%= getCity(city_name) %>

答案 1 :(得分:0)

答案是否定的,在rails中,你可以使用remote:true(如前所述在form_for和link_to中)

但是,不要忘记您可以从js到rails后端自行调用原始JQuery.ajax来清理代码。查找skip_validation_code和/或获取验证码并使用ajax调用传递