【发布时间】:2013-11-06 03:43:30
【问题描述】:
我对 Rails 和 Haml 还很陌生。我试图在我的视图中有一个按钮,它包含一个“key”参数,它将传递相同的参数并使用带有 Ajax 的 jQuery 在控制器中触发一个方法。
一切都可以在我的其他课程的幕后完成(这是一个 POST REST 请求),除了成功消息之外我不需要查看任何内容。我已经调试了所有变量和路由,但是,由于某种原因,Ajax 没有捕获key: parameter。它一直说undefined。我尝试在控制器方法中对key 参数进行硬编码,其他所有内容均已确认正常工作,但只是缺少该参数。
在我看来,我有这一行:
%button#start{ key: @start_key }= start
在我的 process.js 文件中:
$(document).ready(function(){
$('button#start').on('click', function(){
var start_key = $('button#start').attr('key'); <------------
$.ajax({
url: '/process/start_process',
data: start_key
})
$('#started_msg').text('started !!!');
});
});
在我的controller.rb中,我有这个方法:
def start_process
Client.start_process(params[:key])
End
我不确定这是否是正确的方法。请随时给我一些 cmets 或是否需要其他信息。
【问题讨论】:
-
在 JavaScript 控制台中运行
$('button#start').attr('key');会得到什么? -
当我点击它时它什么也没说。没有错误,但是当我使用调试器时 start_key 未定义
-
我打赌
@start_key是nil,这意味着该属性永远不会被设置。通过将其输出到 html 来确认其值。你的意思是使用@start_key还是start? -
@start_key 是一个参数,用于从 Pervious 页面中选择哪个进程,我已经仔细检查了它正在获取正确进程密钥的变量
-
$('button#start')是否返回任何元素?
标签: javascript jquery ruby-on-rails ruby ajax