将current_user保存到数据库中以显示在视图中:devise,rails app

时间:2012-02-23 07:56:36

标签: ruby-on-rails devise

我的控制器显示方法中有@user = current_user。但是当我在视图中使用由@user.email创建时,它随着每次登录而变化,我希望它显示创建/进行编辑的用户。

那么如何将current_user保存到数据库中以便我可以显示进行编辑的相应用户?

更新:这是代码

用户模型

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

  # Setup accessible (or protected) attributes for your model
  attr_accessible :email, :password, :password_confirmation, :remember_me

  has_many :groups
end

组模型

 class Group < ActiveRecord::Base
  belongs_to :user
end

设计用户迁移(仅限必要部分)

t.has_many:群组

群组迁移

t.belongs_to :user

组控制器创建方法

def create
   @user = User.find(params[:id])
    @group = @user.groups.build(params[:id])
    respond_to do |format|
      if @group.save
        format.html { redirect_to @group, notice: 'Group was successfully created.' }
        format.json { render json: @group, status: :created, location: @group }
      else
        format.html { render action: "new" }
        format.json { render json: @group.errors, status: :unprocessable_entity }
      end
    end
  end

组控制器新方法

 def new
    @user = User.find(params[:id])
    @group = @user.groups.build(params[:id])

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @group }
    end
  end

0 个答案:

没有答案