PG ::错误部署到heroku
问题描述:
当我的应用程序被推送到heroku时,我得到一个奇怪的错误。该应用运行良好,我的本地机器。我不知道是否因为我在本地使用Mysql?PG ::错误部署到heroku
以下是错误我得到:
2012-07-24T17:14:52+00:00 app[web.1]: ActionView::Template::Error (PG::Error: ERROR: argument of AND must be type boolean, not type integer
2012-07-24T17:14:52+00:00 app[web.1]: : SELECT COUNT(*) FROM "users" INNER JOIN "articles_users" ON "users"."id" = "articles_users"."user_id" WHERE "articles_users"."article_id" = 64 AND (1)):
2012-07-24T17:14:52+00:00 app[web.1]: 9: <span>
2012-07-24T17:14:52+00:00 app[web.1]: 10: <a data-action="like" data-id="<%= a.id %>" >
2012-07-24T17:14:52+00:00 app[web.1]: 11: <%if user_signed_in?%>
2012-07-24T17:14:52+00:00 app[web.1]: 12: <%if a.likes.where(user_id = current_user.id).size == 0%>
2012-07-24T17:14:52+00:00 app[web.1]: 13: <%=image_tag("star.png", :width => "37", :height => "36", "data-action" => "star")%></a><span data-action="likes" style="vertical-align:10px; padding:8px;">
2012-07-24T17:14:52+00:00 app[web.1]: 14: <%else%>
2012-07-24T17:14:52+00:00 app[web.1]: 15: <%= image_tag("star-yellow.png", :width => "37", :height => "36", "data-action" =>"star")%></a><span data-action="likes" style="vertical-align:10px; padding:8px;">
下面的代码从我的观点:
<a data-action="like" data-id="<%= a.id %>" >
<%if user_signed_in?%>
<%if a.likes.where(user_id = current_user.id).size == 0%>
<%= image_tag("star.png", :width => "37", :height => "36", "data-action" => "star")%></a><span data-action="likes" style="vertical-align:10px; padding:8px;">
<%else%>
<%= image_tag("star-yellow.png", :width => "37", :height => "36", "data-action" => "star")%></a><span data-action="likes" style="vertical-align:10px; padding:8px;">
<%end%>
怎么回事错在这里? 感谢先进!
答
我改变
<%if a.likes.where(user_id = current_user.id).size == 0%>
到
<%if !a.likes.include?(current_user)%>
现在它工作正常。
答
你应该像这样修改where方法。
a.likes.where(:user_id => :current_user.id)
不
a.likes.where(user_id = current_user.id)
我认为这会工作。
没有。这导致它搜索错误的表,它搜索用户表而不是连接表articles_users 'Mysql2 ::错误:'where子句'中的未知列'users.user_id':SELECT COUNT(*)FROM' users' INNER JOIN'articles_users' ON'users'.'''''articles_users'.'user_id' WHERE' articles_users'.'article_id' = 13 AND'users'.'user_id' = 1' – Deekor 2012-07-24 18:22:45