Как я могу обновить текущую информацию о пользователе, я пытался, но показывает эту ошибку:Рубин на Rails обновление текущего пользователя
When assigning attributes, you must pass a hash as an argument.
Это мой код контроллера:
def edit
@user = current_user
end
def update
@user= current_user
if @user.update_attributes(params[:current_user])
# Handle a successful update.
else
render 'edit'
end
end
Мои маршруты:
get 'edit' => 'users#edit'
post 'edit' => 'users#update'
Params:
private
def user_params
params.require(:users).permit(:first_name, :last_name, :email)
end
Моя модель:
class User < ActiveRecord::Base
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][email protected]([^@.\s]+\.)+[^@.\s]+\z/ }
has_secure_password
validates :password, presence: true, length: { minimum: 6 }
end
Форма:
<%= form_for :user, url: my_account_path(@user), action: :update, method: :post do |f| %>
<%= f.text_field :first_name %>
<%= f.text_field :last_name %>
<%= f.text_field :email %>
<%= f.submit "Update Account" %>
<% end %>
Это помогло бы мне много, пожалуйста.
Благодаря
Опубликовать свое значение «params» – RAJ
Hi @RAJ, Сообщение обновлено –
Спасибо, посмотрите на решение: http://stackoverflow.com/a/34576231/1047207 – RAJ