我有一个非常简单的问题。我的背景是PhP,以前经常做这个,所以我可能看待这个问题的方式不对。
我正在尝试在RoR中创建一个ajax处理程序。当用户点击按钮时,javascript会触发POST请求,并使用jQuery的ajax函数中的“success:”参数给出用户反馈。
问题是,RoR正在尝试加载ajax处理程序的视图,而我只需要在控制器中编写几行代码来执行数据库工作,并打印出一个状态码,该状态码将由用户的javascript解释。
这只是一个Mailchimp订阅页面,所以我只使用了“home”控制器。
我的路由:
map.root :controller => 'home'
map.connect '/mcsubscribe', :controller => 'home', :action => 'mcsubscribe'
我的首页控制器;
class HomeController < ApplicationController
def index
# no content
end
def mcsubscribe
print params[:email]
end
end
这是我的测试JavaScript,这样你就能理解正在发生的事情。
function mcSubscribe() {
var email = jQuery("#signup_input_email").val();
jQuery.ajax({
type: "POST",
url: "http://domain.com/mcsubscribe",
data: "email=" + email,
cache: false,
success: function(result) {
alert(result);
}
});
}
我认为这应该是一个常见的问题,但是我已经在谷歌上搜索了一下,只找到了关于重定向的建议,因为用户永远不会访问/mcsubscribe页面,那似乎不太合适。
params[:email]
的值。 - Koraktor