Доступ к сессии [] в FoosController.method в Rails 3 - PullRequest
1 голос
/ 08 марта 2011

у меня есть

class CommentsController < ApplicationController
  def foo
    session[:comments] ||= {}
    comment = Comment.new(params[:comment])
    # Validation and such
    session[:comments][comment.post_id] = comment
    #several redirections and remote authentications. User returns to another method, 
    # But for the sake of the example, we continue here. 
    CommentsController.publish_from_session
  end

  def self.publish_from_session
    session[:comments].each do |comment|
      comment.save!
    end
  end
end

Это дает мне не может конвертировать символ в целое число ошибка. При погружении в это, по-видимому, session просто недоступен или не хэш. Возможно, что звонить CommentsController.some_method просто неправильно.

Какое будет правильное решение?

Также: как уже упоминалось в прокомментированном коде, реальная сделка немного сложнее. Пользователь возвращается либо на другой контроллер (сессионный контроллер через oauth), либо на еще один метод в CommentsController. См. контроллеры, вызывающие друг друга и Комментарии, созданные после Oauth о том, как я пришел к этому.

1 Ответ

2 голосов
/ 08 марта 2011

session - это метод экземпляра. Вы не можете получить к нему доступ в методе класса, но вы можете передать его (или просто session[:comments] методу класса.

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