我有一个我认为非常简单的问题。我有 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 页面,这似乎不合适。