【发布时间】:2012-08-21 11:50:20
【问题描述】:
所以我得到了这个类方法:
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 传递的,它们是。所以排除这一点......到底发生了什么?大量赞成票将不胜感激任何帮助。
【问题讨论】:
-
顺便说一句
auth在其当前形式中会失败,如果在 db 中不存在id提供的 nil:NilClass` 的异常NoMethodError: undefined methodkey_code'。以这种方式增强if会有所帮助:if post && post.key_code == key_code_in
标签: ruby-on-rails ruby-on-rails-3 controller mongoid