这个问题在面试中多次出现,我在谷歌上找不到答案。我想我在搜索时使用了错误的术语。
问问题
23 次
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 回答