Захват, какой пользователь создал сообщение - PullRequest
3 голосов
/ 05 февраля 2011

Это должно быть очень просто (я новичок), но я не могу найти ответ. Каков наилучший способ получить идентификатор пользователя из сеанса и вставить его в поле user_id для данного сообщения?

(пользователь has_many: посты и посты принадлежит_пользователям)

def create

 @post = Post.new(params[:post])   (<---I want to get the user id from the session into here?)

end

Ответы [ 2 ]

4 голосов
/ 05 февраля 2011

Предполагая, что вы обрабатываете аутентификацию таким образом, что вы можете получить доступ к текущему пользователю, используя вызов метода (current_user):

def current_user
  @current_user ||= User.find(session[:user_id])
end

И предполагая, что у вас есть модель, настроенная примерно так:

class User
  has_many :posts
end

class Post
  belongs_to :user
end

Вы можете использовать current_user, чтобы создать связанный пост, подобный этому:

current_user.posts.create(params[:post])
0 голосов
/ 05 февраля 2011

Марка:

params["post"].merge!({"user_id" => your_variable})

Так или иначе, Догберт задал тебе отличный вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...