2011-03-19 125 views
2

我新的轨道,所以我就解释一下我的情况给你:Ruby on Rails的:自定义操作

我有一个用户模型和UsersController。用户使用他们的电子邮件地址和密码登录。特殊用户可以邀请其他用户,方法是将被邀请者的电子邮件地址输入到表单中,然后点击提交。被邀请的用户然后通过首次输入密码来接收包含链接以激活其帐户的邮件。

这里的问题:

的“邀请函”的形式被映射到我的UsersController大气压的创建操作。但是,我将“激活”表单映射到什么地方?

是否可以定义一个自定义动作“激活”或可以像/users/3/activate(当然,这里也应该有一些验证令牌......)访问并且可以激活ID为3的用户?

我发现了一些自定义操作的东西,但我还没有完全掌握它。

Thx任何帮助

回答

8

你可能在你的路线文件中有这样的东西。 (如果没有,请张贴。)

resources :users 

如果你想补充一点,作用于单User自定义操作,您可以添加为:member这样。

resources :users do 
    member do 
    get :activate 
    end 
end 

注意,使用的东西,修改数据是有点不对,但你在谈论打这个从电子邮件中的链接一个get

当您玩弄路线时,请不要忘记rake routes会向您显示您目前可以使用的所有路线。

+0

嗯,我刚刚意识到我需要一个GET操作来从电子邮件链接访问用户激活表单,并通过POST来实际激活用户。 thx的帮助,我会试试这个 – DeX3 2011-03-19 21:10:34