Ruby Rails4和设计

时间:2013-10-14 08:54:25

标签: devise ruby-on-rails-4

请帮忙!

  

我是铁轨上红宝石的初学者。

我正在将值从简单的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 => ""

请帮助!!!

2 个答案:

答案 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