我有一位用户,希望能够休假休假。我的观点如下:
<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 %>
在我的控制器中,我有新的和创建方法。在我在互联网上看到的“创建”方法的所有示例中,都有一行类似于
的代码 @person = User.new(user_params) or whatever
我的问题是我没有vacation_days模型。只有一个控制器。我想编辑用户数据库,但创建新用户不是答案(对吧?)。
如何创建有效的创建方法?
答案 0 :(得分:2)
这不是真正的RESTful ...但是,如果你想更新现有用户,你可以这样做
@user = User.find(params[:id])
@user.update_attributes(params[:user])
其中params[:id]
将包含您要更新的用户的ID,params[:user]
将包含您要更新的属性。
由于您将form_for(@user)
与其表单构建器一起使用,因此应该没问题。
答案 1 :(得分:1)
在我看来,您在休假日需要单独的控制器。只需拥有一个vacation_days / edit视图,其中包含您的表单,并将其提交给用户/更新。
为清楚起见,您的操作应该是编辑和更新您的用户,而不是“创建”用户。因此,更新用户的控制器操作应该包含以下行:
@user.update_attributes(params[:user])