1

我有一个用户,他希望能够休假。我的观点是这样的:

<h2>Request Days Off</h2>

<%= form_for(@user, :as => :user, :url => vacation_days_path) do |f| %> 

  <div><%= f.label "How many vacation days would you like to take?" %>
  <%= f.number_field :vacation_days %></div>  

  <div><%= f.submit "Submit" %></div>

<% end %>

在我的控制器中,我有 new 和 create 方法。在我在互联网上看到的“创建”方法的所有示例中,有一行代码类似于

 @person = User.new(user_params)   or whatever

我的问题是我没有vacation_days 模型。只有一个控制器。我想编辑用户数据库,但创建一个新用户不能是答案(对吗?)。

如何创建有效的创建方法?

4

2 回答 2

2

这不是真正的 RESTful... 但是,如果您想更新现有用户,您可以这样做

@user = User.find(params[:id])
@user.update_attributes(params[:user])

whereparams[:id]将保存您要更新的用户的 ID,并将保存您要更新params[:user]的属性。

由于您正在使用form_for(@user)它的表单生成器,它应该没问题。

于 2013-07-11T20:10:04.300 回答
1

在我看来,您在假期不需要单独的控制器。只需拥有一个包含您的表单的 Vacation_days/edit 视图,然后将其提交给用户/更新。

为清楚起见,您的操作应该是编辑和更新您的用户,而不是“创建”用户。因此,您更新用户的控制器操作应该具有以下行:

@user.update_attributes(params[:user])
于 2013-07-11T20:11:27.620 回答