0

这个问题在面试中多次出现,我在谷歌上找不到答案。我想我在搜索时使用了错误的术语。

4

1 回答 1

1

首先,这是MVC 架构。可能已经看过了,但基本上是作为应用程序的用户。在视图中将数据提交回控制器的一个很好的示例是用户尝试创建新用户时。首先,您可能有一个<%= link_to 'Create New User', new_user_path %>this 将向调用该new操作的控制器发送一个请求user_controller,然后它将渲染app/users/new.html.erb其中包含一个 form_for 块,该块将渲染部分,在大多数情况下将是:render :partial => 'form'. 从呈现表单并在用户提交表单时输入相关信息,表单和数据连同表单一起提交,并发出 POST 请求,这很可能是/users在这种情况下。这映射到create动作在 UsersController as Rails 中使用约定优于配置的原则。

def create
    @title = 'Create a user'
    @user = User.new(params[:user])

    if @user.save
      UserMailer.registration_confirmation(@user).deliver
      redirect_to usermanagement_path
      flash[:success] = 'Created successfully.'
    else
      @title = 'Create a user'
      render 'new'
    end
  end

在上面的示例中,当调用新操作并提交表单时,它会将新用户传递到参数中,然后它将尝试保存用户。我添加了一个邮件程序,以便在创建特定用户时他们会收到一封确认电子邮件。如果表单没有提交,它将继续呈现'new'操作。

希望这可以解决问题

于 2013-05-31T17:22:06.817 回答