【发布时间】:2014-11-20 03:22:37
【问题描述】:
我的 rails 应用程序有点问题。 我正在尝试从数组中提取一个随机名称并将其传递到我的 rails 控制器和方法中。
这是我的 AJAX:
var artists = [array with some names]
randomA = {}
var randomArtist = artists[Math.floor(Math.random()*artists.length)];
randomA['a_name'] = randomArtist.toString();
$.ajax({
url: "/songs_echowrap/" + randomA.a_name,
dataType: "json"
}).success(function(data) {
Do Stuff
}
});
});
这是我的路线:
get 'songs_echowrap/:artist_name' => 'users#get_echonest'
这是我的控制器:
def get_echonest
foo = params[:artist_name]
@rec = Echowrap.playlist_basic(:artist => params[:artist_name] , :results => 25)
render json: @rec
end
当我在终端中运行 binding.pry 时,参数为“未定义”。
【问题讨论】:
-
你在浏览器中测试过这个吗?你为什么得到?在开发工具中查看请求参数。在控制器操作中提高参数哈希以查看参数是否包含艺术家姓名。
-
@Mohamad 是的,我已经完成了一个 console.log(randomA.a_name) 并且它确实返回了我想要的随机艺术家的名字。但我认为它没有正确到达控制器。在终端中,当我运行 binding.pry 时,'foo' 等于 "undefined"
-
Not
console.log()检查 Rails 请求。在控制器操作中引发错误并检查开发工具以查看请求响应中引发的参数哈希。您将确切地看到params包含的内容。如果这是你的 JavaScript 或其他东西,那么你不会。
标签: ruby-on-rails ruby ajax