如何在不同于Rails应用程序的域上管理注册?

时间:2012-09-24 00:54:47

标签: ruby-on-rails ruby-on-rails-3

所以我在www.myapp.com上有一个Rails应用程序,我在www.marketingpage.com上有一个营销登陆页面。

我想要发生的是,当人们在我的营销页面上填写注册表单时,我的Rails应用程序会对其进行管理。

我想在myapp.com/mktg创建一个视图,然后将www.marketingpage.com重定向到myapp.com/mktg。

但是,该方法的问题在于我不希望用户看到注册的其他域名。

我如何处理此问题,以便营销页面上的注册看起来像是一个完整的“迷你网站”,但它是由我的主要Rails应用程序提供的?

感谢。

修改1

另一件事是,对于marketingpage.com的注册页面,我想使用电子邮件注册only for Devise - 所以marketingpage.com不仅仅是1页。这将是1页,然后他们至少1或2页。因此无论域/路由策略如何,都必须考虑到这一点。

1 个答案:

答案 0 :(得分:1)

如果您有电子邮件输入:

<input id="email"></input>
<button id="submit-email"></button>

单击按钮时,您可以发送jsonp(以解决同源限制)请求:

$('#submit-email').click(function() {
    submitted_email = $('#email').value()

    // client-side validations

    $.ajax({
        type: 'POST',
        dataType: 'jsonp',
        url: "http://www.myapp.com/signup",
        data: { user: { email: submitted_email } },
        success: function(data) {
            // signup success
        }
    });
});

在导轨末端:

class UserController
    def signup
        @user = User.create(params[:user])
        // handle success/failure
        respond_to do |format|
            format.js { render :json => @user }
        end  
    end
end

检索用户列表:

    $.ajax({
        type: 'GET',
        dataType: 'jsonp',
        url: "http://www.myapp.com/users",
        success: function(data) {
            // populate a list
        }
    });