印象派不会将Rails 4会话值记录到session_hash中

时间:2014-11-03 06:43:27

标签: ruby-on-rails ruby ruby-on-rails-4 rubygems ruby-on-rails-4.1

impressionist(@object, nil, unique: [:session_hash]) 

调用impressionist()会第一次插入记录,稍后会在每次请求中显示记录已存在,因为它始终会找到 session_hash的。看起来它没有将rails-4会话值记录到“session_hash”。

我正在使用Rails 4.1.6,ruby 2.1.3p242和印象派(1.5.1)

对此有何帮助?

2 个答案:

答案 0 :(得分:0)

我认为您描述的问题与我的相同,我在git repo上找到了这个公开问题的解决方案。

https://github.com/charlotte-ruby/impressionist/issues/177

在发出id请求之前,必须覆盖项目的会话哈希方法以初始化会话。

ImpressionistController::InstanceMethods.class_eval do 
  def session_hash
    session[:init] = true
    request.session.id
  end
end

答案 1 :(得分:-1)

我遇到了同样的问题。我最终使用条件语句检查session_hash是否存在。

if session_hash.blank?
  impressionist(@object)
else
  impressionist(@object, nil, unique: [:session_hash])
end