【发布时间】:2011-08-15 22:29:41
【问题描述】:
我正在使用 Rails 3、Jquery-UJS 和 Jquery。我有一个使用 Rails3 的 Jquery 工作设置。我正在尝试通过单击链接将变量从 Javascript 发送到 Rails 控制器。
我目前的方法是使用js如下进行ajax调用并传递msg字符串。
$("#select_link").click(function()
{$.ajax({
type: 'POST',
url: 'http://your_url/jmsg',
data: {msg: "hello world"},
;}
});
});
我应该在我的 application.js 文件中包含此代码吗?
在我的 .html.erb 文件中
<%= link_to "Send variable", jmsg_path, :remote => true %>
在我的控制器中
def jmsg
@message= params[:msg]
respond_to do |format|
format.js
end
end
到目前为止,我还无法在我的@message 实例变量中获取 javascript 变量
编辑:
我按照建议进行了更改。但是,当我这样做时,变量@message 没有设置
@message=params[:msg]
当我使用 Fiebug 检查 XHR 时,我看到 302 Moved Temporarily for the POST 操作(尽管 POST 参数 msg 设置正确)。响应是 - $("#show_message").html("")
我的 .js 视图是:
$("#show_message").html("<%= @message %>")
EDIT2:当我检查 Firebug 时,它显示现在有两个操作: 1. POST /jmsg - 响应 @message = "hello world" 2. GET /jmsg - 带有响应 @message=" "
【问题讨论】:
标签: jquery ruby-on-rails ruby-on-rails-3