【问题标题】:Locate database entry based on ID from another database entry in rails基于来自rails中另一个数据库条目的ID定位数据库条目
【发布时间】:2013-10-27 20:55:55
【问题描述】:

我一直在研究如何在我的#savedtweets 表中找到“tweet_id”,然后通过控制器在我的#newtweets 表中找到相同的“tweet_id”,到目前为止我已经尝试过这样的事情;

控制器

@stweet = Savedtweet.find(params[:id])
@newtweet = Newtweet.where(:tweet_id => @stweet.tweet_id)
@newtweet.status = 'new'
@newtweet.save

基本上,我需要根据当前 Savedtweet ID 将我的 Newtweets 表中的字符串“saved”更改为“new”。我就是想不通。如果我在控制台中执行以下操作;

@stweet = Savedtweet.first @newtweet = Newtweet.where(:tweet_id => @stweet.tweet_id)

它会找到正确的。我必须靠近,只是还没到。 :)

【问题讨论】:

    标签: sql ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.2


    【解决方案1】:

    你可以这样做:

    Newtweet.find_by_tweet_id(@stweet.tweet_id).update_attribute(:status, 'new')

    您的代码不起作用的原因是Newtweet.where() 返回了一个对象数组。它应该是Newtweet.where().first,尽管Newtweet.find_by_tweet_id 是首选方法。

    【讨论】:

    • 嘿,谢谢!几分钟后,我认为这是有效的 @newtweet = Newtweet.where(:tweet_id => @stweet.tweet_id).update_all(:status => 'new')... 但是我确实看到你的方法比跑步好得多通过更新它和东西。再次感谢!
    • @user2419316 很高兴为您提供帮助!
    • 抱歉,我已经将它投入生产,现在它停止工作了。除此之外,我在日志中没有任何错误; ActionController::RoutingError (No route matches [GET] "/dashboards_controller/create"): .... 不确定这是否相关。有什么想法吗?
    • @user2419316 恐怕这无关紧要。我建议发布一个包含更多详细信息的新问题,以获得更多有用的反馈。该错误告诉我您的routes.rb 有问题。
    • 知道了,刚刚发布了另一个类似于 find_by_tweet_id 的问题,再次感谢您对这个问题的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-22
    • 2017-01-15
    • 2011-01-11
    • 1970-01-01
    相关资源
    最近更新 更多