如何进行“更新”功能

时间:2015-08-31 07:24:37

标签: ruby-on-rails

我对RoR很新。我开始注册用户登录,显示和删除,但我不能进行编辑/更新功能。我将发布我的注册函数和我用于注册的html表单,我希望用于EDIT / UPDATE。

注册功能

def register
@name = params[:name]
@surname = params[:surname]
@username = params[:username]
@password = params[:password]
@email = params[:email]
@tel = params[:tel]
@role_id = params[:role_id]
user = User.create_with_password(@name,@surname,@username,@email,@password,@tel,@role_id)
if user
  #session[:signed_in] = true
  session[:username] = user.username
  redirect_to "/menaxhimi_pushimit/index"
else
  redirect_to "/menaxhimi_pushimit/index"
end

用户模型

    def self.create_with_password(name, surname, username, email, password, tel, role_id)
    salt = SecureRandom.hex
    password_hash = self.generate_hash(password, salt)

    self.create(
        name: name,
        surname: surname,
        username: username,
        email: email,
        salt: salt,
        password_hash: password_hash,
        tel: tel,
        role_id: role_id
        )
end 

def verify_password(password)
    self.password_hash == User.generate_hash(password, self.salt)
end

def self.generate_hash(password, salt)
digest = OpenSSL::Digest::SHA256.new
digest.update(password)
digest.update(salt)
digest.to_s
end

我的html表单

      <form action='/menaxhimi_pushimit/update' class='validate-form' method='post'>
    <input type="name" placeholder="Name" name="name" required />
    <input type="surname" placeholder="Surname" name="surname" required />
    <input type="username" placeholder="Username" name="username" required />
    <input type="password" placeholder="Password" name="password" required />
    <input type="email" placeholder="Email" name="email" required />
    <input type="tel" placeholder="Tel" name="tel" required />
    <input type="Roli" placeholder="Roli" name="role_id" required />
    <input type="submit" value="Sign Up" />
  </form>

有人可以帮助修改EDIT / UPDATE的寄存器

提前致谢

1 个答案:

答案 0 :(得分:1)

使用rails的唯一好处是它的约定,如果你使用它们你不必编写自己的自定义代码。你需要谷歌并使用rails-4学习基本的CRUD操作。

以下是Demo用户身份验证应用的链接。您可以按照此代码自行创建。