У меня есть @user = current_user
в моем методе контроллера-шоу. но когда я использую Created by @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
devise-пользовательская миграция (только необходимая часть)
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