首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >破坏在rails 3中不能正常工作。

破坏在rails 3中不能正常工作。
EN

Stack Overflow用户
提问于 2013-11-06 11:01:34
回答 2查看 60关注 0票数 0

我用Rails-3和psql

我的问题有点好笑。我不知道为什么不起作用。

当我使用这段代码时,一切都很完美

代码语言:javascript
复制
if @sd.supplier_document_users.first.status.eql?("Waiting")
   @sd.supplier_document_send_to_fi_user_lists.destroy_all
   @sd.supplier_document_users.first.destroy
   @fi_destroy_status = true
end

在这里,@sd.supplier_document_users返回[]之后

当我添加这个if条件时(if !@sd.supplier_document_users.blank?)像这样

代码语言:javascript
复制
if !@sd.supplier_document_users.blank?              
    if @sd.supplier_document_users.first.status.eql?("Waiting")
       @sd.supplier_document_send_to_fi_user_lists.destroy_all
       @sd.supplier_document_users.first.destroy
       @fi_destroy_status = true
    end
end

这里@sd.supplier_document_users返回值,我在( @sd.supplier_document_users.first.destroy)上面销毁了它

我不知道我的密码里有什么鬼。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-06 12:05:09

这是因为@sd.supplier_document_users的结果可能被Rails缓存。

在第二个示例中,@sd.supplier_document_users.blank?将所有用户加载到一个数组中并缓存结果。如果稍后再次调用@sd.supplier_document_users,则仍然是相同的数组。如果要确保重新加载数组,请调用:@sd.supplier_document_users(true)

它在您的第一个示例中有效,因为您没有加载所有用户。只是第一个(在数据库级别,而不是在数组级别)。

票数 1
EN

Stack Overflow用户

发布于 2013-11-06 11:50:44

可以说,其中任何一个都要清楚得多。

代码语言:javascript
复制
if @sd.supplier_document_users.any?              
    if @sd.supplier_document_users.first.status.eql?("Waiting")
       @sd.supplier_document_send_to_fi_user_lists.destroy_all
       @sd.supplier_document_users.first.destroy
       @fi_destroy_status = true
    end
end

或者你可以这样写:

代码语言:javascript
复制
if @sd.supplier_document_users.any? && @sd.supplier_document_users.first.status.eql?("Waiting")
   @sd.supplier_document_send_to_fi_user_lists.destroy_all
   @sd.supplier_document_users.first.destroy
   @fi_destroy_status = true
end

在任何情况下,它是如何不工作?内部if中的代码是否未被执行,还是您期望从if返回某种类型的值?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19810331

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档