【发布时间】:2016-01-19 05:05:22
【问题描述】:
为什么不更新用户信息,当我更新用户信息时显示这个错误:
nil:NilClass 的未定义方法“update_attributes”
我的代码出了什么问题,如下所示:
控制器:
def edit
@users= User.find(params[:user_id])
end
def update
#@users= User.find(params[:user_id])
if @users.update_attributes(user_params)
flash[:notice] = "User updated"
render 'edit'
else
render 'edit'
end
end
private
def user_params
params.require(:users).permit(:first_name, :last_name, :father_name, :mother_name )
end
表格:
<%= form_for :users, url: edit_path(@users), action: :update, method: :post do |f| %>
<%= f.text_field :first_name %>
<%= f.text_field :last_name %>
<%= f.text_field :father_name %>
<%= f.text_field :mother_name %>
<%= f.submit "Update" %>
<% end %>
路线:
get 'edit' => 'users#edit'
post 'edit' => 'users#update'
型号:
before_save { email.downcase! }
validates :first_name, :presence => true, :length => { :in => 3..20 }
validates :last_name, :presence => true, :length => { :in => 3..20 }
validates :email, :presence => true, :uniqueness => true, format: { with: /\A[^@\s]+@([^@.\s]+\.)+[^@.\s]+\z/ }
has_secure_password
#validates :password, presence: true, length: { minimum: 6 }
谢谢
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4