1

我正在关注https://github.com/plataformatec/devise_example.git这确实很好,但我需要对其进行一些补充,但不知道该怎么做。

我想为iphone应用程序创建一个api,初始过程是通过注册创建新用户,然后必须在邮件中确认帐户,一旦确认用户可以登录并查看他的详细信息,如姓名、电子邮件、密码、语言、国家等... 但是在这个例子中,登录后我们可以查看帐户信息,但密码字段为空,然后只有电子邮件和密码两个字段。另外我想知道这个设计示例是否可以用作 api,请告诉我如何将语言、国家和类似内容等其他字段添加到用户帐户信息中。如果这是不可能的,那么我该怎么做所有这些事情。请帮助我。也告诉我是否有任何例子。

4

1 回答 1

3

您使用 devise 创建的用户模型在许多方面与其他模型一样,因此您可以通过迁移对其进行修改。在您的控制台中,在 rails 应用程序根目录:

rails g migration AddCountryAndLanguageAndNameAndEmailToUsers country:string language:string name:string email:string
rake db:migrate

您当然必须修改您的视图(可能还有模型中的 attr_accessible 行)来添加这些字段。

Devise 不存储用户的密码;相反,它存储密码的哈希值。直接存储用户的密码通常被认为是一种不好的做法。但是,如果您对此一无所知,那么您没有理由不能修改上述迁移以包含纯文本密码列。

作为 JSON 使用:

Rabl是一个很棒的 JSON 模板。

否则,在您的用户控制器中:

class UsersController
  def show
    @user = User.find params[:id]
    respond_to do |format|
      format.html
      format.json { render json: @user }
    end
  end

  def index
    @users = User.all
    respond_to do |format|
      format.html
      format.json { render json: @users }
    end
  end
end

等等……

于 2012-09-14T04:52:30.957 回答