草庐IT

relational-model

全部标签

ruby-on-rails - 使用 ActiveRecord::Relation 时的 RSpec 匹配器

所以这是我要测试的方法:defself.by_letter(letter)where("lastnameLIKE?","#{letter}%").order(:lastname)end这里有个小问题,#{letter}后面的百分号到底是做什么用的?与格式化有关?这是测试该方法的规范的一部分:context'method"by_letter"'doit'returnsandorderedlistbyletter'dotheon=Contact.create!(firstname:"Theon",lastname:"Greyjoy",email:"tgreyjoy@ironprice.co

ruby-on-rails - rails : Order a model by the last element of a has_many association

我有两个模型:User和Message,它们通过has_many关系连接。我想获得一个users列表,按他们上一条消息的时间戳排序。classUser当我这样做时:@users=User.includes(:messages).order('messages.created_atDESC').limit(5)它似乎对消息进行排序,获取最新的5条消息,然后返回与这些消息关联的用户。所以用户数可以少于5个。我想确保获得5个用户。我希望查询为每个请求获取最新消息,对最后的消息进行排序,然后将最新消息返回给用户。所以我想要这样的东西:@users=User.includes(:messages

ruby-on-rails - 目录 : Model validation question

我有一个基本的ActiveRecord模型,其中我有两个要验证的字段。要求是至少有一个字段必须有值。两者都可以有值,但至少有一个需要有值。我该如何表达validates_presence_of声明?例如:validates_presence_of:main_filevalidates_presence_of:alt_file我不希望只有其中一个为空时才产生错误,只有两个都为空时才产生错误。 最佳答案 validates_presence_of:main_file,:if=>Proc.new{|p|p.alt_file.blank?}

ruby-on-rails - Rails 教程 3 第 7 章 : User Model Rspec Test Failing

我一直在成功地遵循Rails教程3,直到我到达第7章并实现了用户模型,现在我的rspec一直失败。这是我的user.rb文件输出classUsertrue,:length=>{:maximum=>50}validates:email,:presence=>true,:format=>{:with=>email_regex},:uniqueness=>{:case_sensitive=>false}validates:password,:presence=>true,:confirmation=>true,:length=>{:within=>6..40}before_save:encr

ruby-on-rails - rails : force a model to be not valid

我有一个非常特殊的情况,我想强制模型实例无效。像这样:user=User.newuser.valid?#trueuser.make_not_valid!user.valid?#false有什么办法可以实现吗?谢谢! 最佳答案 你可以这样做:validate:forced_to_be_invaliddefmake_not_valid!@not_valid=trueendprivatedefforced_to_be_invaliderrors.add(:base,'hasbeenforcedtobeinvalid')if@not_val

ruby-on-rails - 在 Ruby on Rails 中如何通过键访问对象的 (ActiveRecord::Relation) 值?

tl;dr如何使用对象的键获取对应的值?我不明白为什么Atag.where(tag:'brand')给了我一个我称之为对象的东西,因为没有更好的术语:#]>但我很难访问键:id的相应值。Atag.where(tag:'brand').id和Atag.where(tag:'brand')[:id]和Atag.where(tag:'brand')(:id)所有都抛出错误,而在这种情况下,我只是想返回整数1。我似乎无法使用ruby​​,也无法通过我的google搜索技能(或缺乏)找到这个基本问题的简洁答案。谢谢 最佳答案 来自OdinPr

ruby-on-rails - NilClass :Class 的未定义方法 'model_name'

浏览器在Locals#show中返回以下错误:NilClass:Class的未定义方法'model_name'51:52:53:54:这是我的locals_controller.rb(显示Action)defshow@local=Local.find(params[:id])@foods=@local.foods.paginate(page:params[:page])respond_todo|format|format.html#show.html.erbformat.json{renderjson:@local}end结束这里是foods_controller.rb(创建操作)de

ruby-on-rails - Ruby on Rails - ActiveRecord::Relation 计数方法错误?

我正在编写一个应用程序,允许用户互相发送有关“优惠”的消息。我想我可以节省一些工作并使用Mailboxergem。我正在遵循RSpec的测试驱动开发方法。我正在编写一个测试,以确保每个报价只允许一个Conversation。报价属于两个不同的用户(提供报价的用户和收到报价的用户)。这是我失败的测试:describe"afteramessageissenttothesameusertwice"dobeforedo2.times{sending_user.message_user_regarding_offer!offer,receiving_user,random_string}ends

ruby-on-rails - ruby rails : Access information from other models?

另一个RubyonRails新手问题:在我的帖subview中,我想显示作者姓名。post数据库表存储作者id,它与users表中的usersid列相同。该用户在用户表中也有一个用户名列。有了用户id,我该如何获取用户名呢? 最佳答案 User.find(user_id).username是一种方式。如果你有一个belongs_to帖子和用户之间的关系是post.user.username这更像是“Rails方式”。 关于ruby-on-rails-rubyrails:Accessinf

ruby - 狮子 : Problem with RVM installing rubies - problem related to openssl

我很绝望,现在已经两天(!!)天都没有解决方案来解决以下问题。更新Lion后,我想使用最新版本的rvm安装额外的rubies。这是我之后调用bundler时发生的情况:/Users/felix/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in`require':dlopen(/Users/janroesner/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/x86_64-darwin11.1.0/digest/sha1.bund