7 ruby ajax jquery ruby-on-rails
我不熟悉轨道上的ajax和ruby.我已经自学了做项目.
现在我遇到了一个问题,我想使用ajax从控制器中检索数据.
我不确定如何写url部分:
$.ajax({
type:"GET",
url:"books",
dataType:"json",
success:function(result){
alert(result);
}
})
Run Code Online (Sandbox Code Playgroud)
书是我的控制器的名字(书是我的表之一)
这段代码有效,但我不想从书中检索所有数据,而只想要它的一部分.在我的书籍控制器中说一些动作测试数据
def test
@test=books.find.last
respond_do |format|
format.html
format.json {render ;json=>@test}
end
end
Run Code Online (Sandbox Code Playgroud)
但是当我将url更改为books/test时,我会收到一条错误消息,说在控制台日志中找不到404.
如何检索部分控制器数据?提前感谢
man*_*hie 11
那么你在这里尝试做的是创建一个名为test的非RESTful路由.因此,您需要将其添加到routes.rb中(有关详细信息,请参阅此处):
resources :books do
collection do
get 'test'
end
end
Run Code Online (Sandbox Code Playgroud)
如果需要,您可以传递这样的参数:
$.ajax({
type:"GET",
url:"books/test",
dataType:"json",
data: {some_parameter: 'hello'},
success:function(result){
alert(result);
}
})
Run Code Online (Sandbox Code Playgroud)
然后您可以在测试方法中使用,如下所示:
def test
some_parameter = params[:some_parameter]
# do something with some_parameter and return the results
@test=books.find.last
respond_do |format|
format.html
format.json {render json: @test}
end
end
Run Code Online (Sandbox Code Playgroud)