所以我得到了这个类方法:
def self.auth(id, key_code_in)
post = Post.where(:id => id).first
if post.key_code == key_code_in
post
else
nil
end
end
它喜欢控制台:
1.9.3p194 :001 > authtest = Post.auth('5032f3254ff9fcf10100001b', 42745590875)
=> #<Post _id: 5032f3254ff9fcf10100001b, _type: nil, created_at: 2012-08...
但讨厌控制器:
#GET posts/:id/remove_form
def remove_form
end
#POST posts/:id
def code
@id = params[:id]
@key = params[:destroy_code]
@post = Post.auth(@id, @key)
render :text => params[@post].inspect
end
每次都给我零。我确保从视图form_tag传递参数,它们是。因此判断......究竟是怎么回事?任何帮助都会受到过多的投票赞赏。
答案 0 :(得分:1)
参数不是String(您的比较期望是整数)。
您可以使用to_i方法进行转换。
答案 1 :(得分:1)
我想我明白了!
您为什么要访问params[@post]
?此方法的结果应该只在@post
。
答案 2 :(得分:1)
试试这个, 如果你正确使用id。
def代码
@id = params [:id] .to_i
@key = params [:destroy_code]
@post = Post.auth(@ id,@ key)
render :text => @post.inspect
端