请帮忙!
我是铁轨上红宝石的初学者。
我正在将值从简单的Web表单更新为sqlite3数据库。
问题只是电子邮件&密码字段将被插入表中。 first_name,last_name等显示值'nil'
我正在使用DEVISE进行身份验证设置。
以下是我的user.rb代码:
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me,
:first_name, :last_name, :profile_name
end
来自我的网络表单的代码
<div><%= f.label :first_name %><br />
<%= f.text_field :first_name %></div>
<div><%= f.label :last_name %><br />
<%= f.text_field :last_name %></div>
<div><%= f.label :profile_name %><br />
<%= f.text_field :profile_name %></div>
以及我的迁移文件夹中的代码摘录:
def changed
create_table(:users) do |t|
t.string :first_name
t.string :last_name
t.string :profile_name
t.string :email, :null => false, :default => ""
t.string :encrypted_password, :null => false, :default => ""
请帮助!!!
答案 0 :(得分:0)
首先, Devise's Github page 实际上有一些关于如何安装和运行它的非常好的信息。还有 RailsCast about Devise
看起来你对Devise如何运作感到非常困惑,我强烈建议你去刷吧!
<强>移植强>
首先,Devise创建了自己的迁移,其中包含很多列。这是由Devise在Ruby CMD中使用以下命令生成的:
rails generate devise:install
rails generate devise MODEL
运行后一个命令后,运行:
rake db:migrate
这将允许您创建数据库,然后您只需创建视图:
rails generate devise:views
这将创建登录,注册和&amp;其他视图设计用于帮助您的应用程序继续运行身份验证。
答案 1 :(得分:0)
在rails4中支持强参数,并且在Rails4中不推荐使用attr_accessible。 所以添加以下代码并尝试运行我希望这将对您有所帮助。
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
before_filter :configure_permitted_parameters, if: :devise_controller?
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:firstname, :lastname, :email, :password, :password_confirmation) }
end
protect_from_forgery with: :exception
end