Rails - 如何在控制器中接受ajax

时间:2017-06-13 00:04:12

标签: ruby-on-rails ajax

我有一个ajax调用应该使用我的控制器更新记录。但是,我在尝试访问它时遇到了困难。

我可以通过日志看到数据正在发送到控制器,但我不知道如何获取它。

ajax中的数据是通过json发送的。

data = JSON.stringify(foo)

在日志中,我可以看到{'name' => 'test', 'type' => 'object'}

我试着做

data = @params[:data]

但我一直遇到nil错误。有没有标准的方法来做到这一点?

2 个答案:

答案 0 :(得分:2)

为什么data = @params[:data]

@params是一个实例变量,在nil分配一些值之前是@foo #=> nil 。您可以登录控制台

params

但是,控制器可以使用body,其中包含请求中params[:name] #=> test 所有必需参数,因此您只需执行

$sql = "SELECT f.dCity, f.aCity, f.date, f.flight_code, f.route, f.timeLeaving, f.timeLanding, f.price, f.class, i.airline_name , 
            (SELECT location FROM iataairportcodes where iata_code='$fromm') as dLocation,
            (SELECT airport_name FROM iataairportcodes where iata_code='$fromm') as dAirport,
            (SELECT location FROM iataairportcodes where iata_code='$too') as aLocation,
            (SELECT airport_name FROM iataairportcodes where iata_code='$too') as aAirport
            FROM flights_test AS f, iataairlinescodes AS i
            WHERE f.airline_code = i.iata_code
            AND f.dCity = '$fromm'
            AND f.aCity = '$too' 
            AND f.date='$newDate'";

答案 1 :(得分:0)

name = params [:name] type = params [:type]

js代码:

$。柱({     网址:xxx,     数据:{         数据:{name:' xxx',输入:{blalalala}}     } })

红宝石

data = params [:data]