在AJAX调用之后,我无法在视图中看到结果
After AJAX call I can't see the result in my view
我使用Rails 4工作,基本上我正在用jquery遍历DOM的html网页上搜索值。我将值存储在一个名为键的变量中,我想使用这个值然后发出一个请求,看起来像这样:Record.find(id: key).name
我有一个用户和一个记录模型。在app/views/users
目录中,我有部分_form.html.erb
,其中我正在做一些javascript。
var key = $('input#record_id').val();
我希望这个变量在我的用户控制器的search方法中可用,这样我就可以用参数键发出请求。
所以我正在做一个AJAX调用,看起来像这样:$('#example tbody').on('click','tr', function(){
var key = $(this).val();
$.ajax({
url: "/search",
type: "POST",
data: {
key: key
},
complete: function(){
console.log('success');
}
});
});
在我的配置路由文件我写了这个路由:
post '/search' => 'users#search'
在我的User控制器中,我这样写方法:
def search
@record = Record.find(params[:key])
end
然后我创建了一个search.js.erb
文件,它的名称与控制器中的方法相同。在这个文件中我写:
$('div#result').html("<%= @record.name %>");
但是当我点击表格中的一个元素时div
没有显示我已经做了很多console.log()来查看我的变量键中的内容,并且可以确定其中有正确的值。此外,我的Ajax调用在我的控制台日志中工作,它返回'成功',在选项卡网络中,我可以看到名为search的任务状态为'ok'。
我有错误500,但我修复了它添加render json: 'ok'
在我的方法搜索
现在我是如此接近打印我的请求@record.name
的结果,但我不能设法找到解决方案。
控制器有一个默认返回html的约定。在本例中,看起来您想要返回.js。erb部分。为此,你需要将控制器配置为返回一个js响应。
def search
@record = Record.find(params[:key])
respond_to do |format|
format.js {}
end
end
respond_to块中的format.js将把控制器指向你的.js。erb部分。如果失败,则发布服务器输出日志的结果,我认为该日志将被写入本地运行应用程序的终端/控制台。
相关文章:
- “渲染骨干模型视图”返回未定义的结果
- backbone.js视图没有't由于异步获取而显示结果;t渲染
- onclick在视图中显示重复的json结果
- 谷歌CSE-我可以显示嵌入在我的网站上的页面本身,而不是从结果视图重定向到页面
- 如何使用 couchdb 列表函数从 couchdb 视图结果中获取特定字段
- 使用角度剑道列表视图不显示任何结果
- 在网格视图中显示不同的消息,用于没有绑定数据和未检索到结果
- jQuery - 搜索结果视图 - List & Grid
- 我的视图模型不会根据 JSON 结果淘汰来增加数字
- GET 请求,但未在视图中获取结果
- 如何从视图中的控制器筛选结果
- 在视图页面上显示 AJAX 结果 jQuery
- 无法将 JSON 结果传递回视图
- 角度如何在搜索和结果视图之间切换并传递数据
- 我如何获得 ajax 视图源结果
- 如何告诉MVC 4视图返回带有子路由的JSON结果
- 使用Cheerio和Response for Node web scraper,将响应函数结果传递给视图
- JavaScript实现的打印二进制树的左视图返回错误的结果
- Spring MVC如何将带有数据的视图结果发送给ajax代码
- 发送一个Javascript数组到控制器,并在另一个URL中呈现视图结果