我刚刚给Ajax这样的电话写了控制器
def create
@like = Like.new(params[:like])
post = params[:like][:post_id]
uid = params[:like][:ip_address]
@extant = Like.find(:last, :conditions => ["post_id ? AND ip_address = ?", post, uid])
last_like_time = @extant.created_at unless @extant.blank?
curr_time = Time.now
if ((@extant && curr_time - last_like_time >= 24.hours) || @extant.blank?)
respond_to do |format|
if @like.save
format.js
format.html { redirect_to :back }
else
format.html { redirect_to posts_path }
format.json { render :json => @like.errors, :status => @unprocessable_entity }
end
end
else
render :js => "alert( You already liked this. );"
end
end
这是视觉仪。
<%= form_for(@like, :remote => true) do |f| %>
<%= f.hidden_field "post_id", :value => @post.id %>
<%= f.hidden_field "ip_address", :value => request.remote_ip %>
<%= submit_tag "Like" %>
<% end %>
执行 SQL 命令 :
SELECT "likes".* FROM "likes" WHERE (post_id 1 AND ip_address = 127.0.0.1 ) ORDER BY "likes"."id" DESC LIMIT 1
它导致 SQL 语法错误。 我认为我的红宝石语法是错误的, 因此我怎样才能修复?