【发布时间】:2013-04-12 10:56:19
【问题描述】:
我是 RoR 世界的新手。
虽然我已经使用 rails 脚手架生成了一些代码。我还可以使用 :remote => true 通过 ajax 发布表单。
表格被张贴了,干净整洁! 但我希望使用 link_to 渲染从我的控制器返回的一些数据,以便它创建到路由/资源的链接。
我尝试创建一个 .js.erb 文件并将代码嵌入其中,但它给了我一个错误提示:
undefined method `link_to'
.js.erb 中的代码
$(document).ready(function(){
$("#new_post").bind('ajax:success', function(xhr, data, status){
console.log(data)
if(data.errors){
console.log("Error!")
}
else{
var user_name = data.user; // json is contained in data variable
$("#recent_posts").prepend("<%= j link_to(user_name, '#') %>");
}
});
});
我哪里错了?
【问题讨论】:
-
你能把你的
.js.erb文件的代码包括进来吗? -
解决此问题后,您可能需要将 Ruby 代码放在引号中,以免破坏您的 .prepend()
-
.js.erb 文件的路径是什么?如果它不在 app/views/_controller_name_ 中,您可能不在可以访问视图帮助器方法(如 link_to)的范围内。要测试是否是这种情况,请尝试通过将
link_to替换为ActionController::Base.helpers.link_to来显式调用范围 -
我试过做: $("#recent_posts").prepend("") 但没有不行!
标签: jquery ruby-on-rails ruby ujs