0
在應用程序控制器我有2種方法:Rails應用程序的行爲不同在Heroku VS發展
def current_user
@current_user ||= User.find_by_auth_token(cookies[:auth_token]) if cookies[:auth_token]
rescue ActiveRecord::RecordNotFound
end
helper_method :current_user
def pro_user
@pro_user = Subscription.where(:email => current_user.email).pluck(:email) if current_user
rescue ActiveRecord::RecordNotFound
end
helper_method :pro_user
當前用戶的電子郵件被插入到訂閱表支付完成後。所以我通過在Subscription中查找current_user.email來檢查用戶是否是付費用戶。
在視圖上,我相應地阻止了pro vs non pro用戶。
<% if current_user %>
<!-- logged in -->
<% if pro_user.empty? %>
<!-- Not a premium user -->
<!--Display some html that iss free but not premium content -->
<% else %>
<!-- This is a premium user -->
<!-- Display all html accordingly -->
<% end %>
<% else %>
<!-- Not logged in-->
<!-- Display html message to log in -->
<% end %>
一切正常工作在我的開發計算機上有sqlite3分貝。但在推向heroku時,高級用戶永遠不會被識別。基本上我認爲如果pro_user.empty?不按預期工作。任何幫助表示讚賞。空的返回值可能存在軌道差異嗎?方法sqlite3和pg dbs之間?我已經完成了pg:重置了幾次。
我想是的。我認爲這行對於postgres來說不是翻譯不同的。 Subscription.where(:email => current_user.email).pluck(:email) – user2511030