Я новичок в рельсах и имею простую проблему.Частичное обновление модели в Rails 3
У меня есть рельсы модель:
class User < ActiveRecord::Base
attr_accessor :password
attr_accessible :name, :email, :password, :password_confirmation, :description
email_regex = /\A[\w+\-.][email protected][a-z\d\-.]+\.[a-z]+\z/i
validates :email, :presence => true
validates :name, :presence => true
validates :password, :presence => true
...
end
На моей странице обновления для этой модели у меня есть форма, содержащая текстовое поле для электронной почты и текстовое поле для имени.
в моем контроллере у меня есть следующий метод обновления:
def update
@user = User.find(params[:id])
respond_to do |format|
if @user.update_attributes(:name => params[:name], :email => params[:email])
flash[:success] = "Profile updated"
format.html { redirect_to(@user, :notice => 'User was successfully updated.') }
format.xml { head :ok }
else
@title = "Edit user"
format.html { render :action => "edit" }
format.xml { render :xml => @user.errors, :status => :unprocessable_entity }
end
end
end
Это неисправное с сообщением об ошибке: странному
undefined method `downcase' for nil:NilClass
Может кто-нибудь сказать мне, где я неправильно здесь? Я уверен, что я делаю что-то бесшабашный, но не может работать, что это такое ...
извинения ... Это была опечатка. У меня есть хэш - я обновил вопрос. Я также использую form_for helper. Проблема в том, что у меня нет атрибута пароля в форме. Если я попробую @ user.update_attributes (params [: user]), он терпит неудачу, потому что требуется пароль. – Paul