完成Rails创建操作的正确方法是什么?

Eth*_*han 1 ruby ruby-on-rails conventions

我有一个User.create暂时注册新用户并发送带有生成密码的电子邮件的操作.完成该操作的最类似Rails的方法是什么?我想从现在开始做好一切.不再胡说八道.这次我很认真.

我在想这些是选择......

  1. 创建一个被调用的视图login_email_sent.html.haml并进行渲染.(它会有一条消息,比如"谢谢,您的登录信息已经发送了.")

  2. 创建一个名为的视图create.html.haml,让Rails默认渲染它.

  3. 将用户重定向到与刚刚提交的表单相同的页面,并在闪存中显示消息.

或者是其他东西...?

Ale*_*yne 6

这更像是一个用户体验问题.

将create动作保留为刚刚创建且没有输出的东西(或者201 Created如果由API调用创建,则只是一个简单的标题).做一个redirect_to:

  1. 感谢页面告诉他们如何等待以及接下来会发生什么
  2. 主页上有一条非常明显的Flash消息,让他们知道刚刚发生了什么.

在99.9%的情况下,您不应该需要创建模板.

def create
  User.create(...)
  respond_to do |format|
    format.html { redirect_to signup_complete_url }
    format.xml  { render :head => :created }
  end
end
Run Code Online (Sandbox Code Playgroud)

例如.