我是Rails编程的新手,正在我的第一个项目上工作。我有一个简单的Rails应用程序,我想通过调用控制器函数来更新页面。目前,我只是想调用一个简单的测试,但是它仍然失败。似乎我正在根据可以在SO上找到的一些稀疏信息来做所有事情。
我正在尝试各种路由配置,但无济于事。
#routes.rb
resources :stations do
get :test, on: :collection
end
get '/stations/test' => 'stations#test'
#stations_controller.rb
def test
puts "Printing from Controller"
return 346
end
#index.html.erb
Latitude: <input type="number" name="destinationLatitude" id="destinationLatitude"step="0.001" value="52.200022"><br>
<button type="button" onclick="test(document.getElementById('destinationLatitude').value)"> Find A Test!</button>
.
.
.
<script type="text/javascript">
function test(destLat){
new Ajax.Request('/stations/test', {
method: 'get',
parameters: {
// destLat: destLat,
},
onSuccess: function (response){
console.log('@@KAKAC ' + response.responseText)
}
});
}
</script>
我想最终传递一些坐标,并让我的后端计算一条路线...尽管现在我只希望后端返回任何东西。欢迎所有帮助,谢谢!
答案 0 :(得分:1)
首先,您需要添加 dataType:JavaScript的“ json”,更多信息,请点击此处“ http://api.jquery.com/jquery.ajax/”
此示例适用于您的代码
function test(destLat){
$.ajax({
url: '/users/new',
dataType: 'json',
processData: false,
success: function(data) {
console.log( data.message )
}
});
}
在控制器中
def test
respond_to do |format|
format.json do
render :json => {
:status => :ok,
:message => "Success!",
:html => "<b>congrats</b>"
}.to_json
end
end
end