Tag: activerecord

我如何在sinatra的ruby中使用类似的查询?

这是我试过的查询: @blogs = DB[:blogs].where(:title => params[:s_txt]).reverse_order(:id) 在这个查询中,我想在我的数据库中找到博客。 我还需要创建一个查询,为用户提供更多结果。 我怎样才能做到这一点?

在Rails中重写实例方法

在覆盖一些赋值方法时,我发现如果我在field_two方法中使用隐式接收器,则不会调用第一个重写方法field_one。 相反,似乎调用默认的’field_one =’。 #controller def do_something @something=Something.first @something.field_two=”some_value” end class Something<ActiveRecord::Base def field_one=(value) puts "hi" write_attribute(:field_g_five,value) end def field_two=(value) field_one="whatever" write_attribute(:field_g_one,value) end end 但是,如果我将接收器更改为显式,则会调用我的重写方法: def field_two=(value) self.field_one=”whatever” write_attribute(:field_g_one,value) end 这里发生了什么?

从用户分组显示消息表中的最新消息

我正在尝试为用户之间的消息传递创建一个收件箱。 以下是表格: Messsages Id | Message_from | message_to | message 1 | 2 | 1 | Hi 2 | 2 | 1 | How are you 3 | 1 | 3 | Hola 4 | 4 | 1 | Whats up 5 | 1 | 4 | Just Chilling 6 | 5 | 1 | […]

奇怪的Ruby on Rails错误

我运行了bundle install ,然后rails s几天运行了rails s并收到以下错误: /Users/helixed/.rvm/gems/ruby-1.9.2-p180@rails31/gems/activerecord-1.6.0/lib/active_record/support/clean_logger.rb:5:in `remove_const’: constant Logger::Format not defined (NameError) 我已经阅读了我可以通过进入clean_logger.rb文件并注释掉该行来解决这个问题,但是我从来没有碰过那个文件,如果我能帮忙的话我也不想编辑它。 有人知道这个文件是做什么的,或者我怎么解决这个问题? 我正在使用Ruby 1.9.2和Rails 3.1.0.rc4。 更新 这是我的Gemfile: source ‘http://rubygems.org’ gem ‘rails’ gem ‘sqlite3’ # Asset template engines gem ‘sass-rails’, “~> 3.1.0.rc” gem ‘coffee-script’ gem ‘uglifier’ # JavaScript gem ‘jquery-rails’ # CSS gem ‘compass’, :git => “https://github.com/chriseppstein/compass.git”, :branch => “rails31” # Authentication gem ‘authlogic’ […]

Rails按以下方式对表进行分组:created_at,返回:status列的计数,然后将:status列分组,每个唯一值的计数

我有一个模型通知,我想知道每天创建多少通知以及每个状态有多少通知。 status是模型Notification的字符串键。 Notification.where(user: users).group(‘DATE(created_at)’).count(‘created_at’) 那给了我: {Mon, 05 Oct 2015=>2572, Tue, 06 Oct 2015=>555, Wed, 07 Oct 2015=>2124, Thu, 08 Oct 2015=>220, Fri, 09 Oct 2015=>36} 但我想要像: {Mon, 05 Oct 2015=>{total=>2572, error=>500, pending=>12}, Tue, 06 Oct 2015=>{total=>555, sent=>50, pending=>12}} 或类似的。 活动记录是否可能? 也许group_by对我有好处。 但它被弃用了。 目前我尝试过: Notification.where(user: users).group(‘DATE(created_at), status’).count(‘created_at’) # => {“error”=>2, “sent”=>42} 这不是我想要的结果。

我应该在HABTM表中包含其他字段吗?

我想Order对象由许多Product对象组成,所以我在object上建立了一个HABTM关系。 我想知道它是否“正确”(或Ruby / Rails)方式还包括HABTM表中的其他数据。 例如,如果我需要计算小计并且有可能需要覆盖行项目总数,我是否将其存储为关联表的一部分,或者我是否需要LineItem对象或更好的东西? 谢谢 ActiveRecord::Schema.define(version: 3) do create_table “orders”, force: true do |t| t.string “order_id”, null: false t.string “order_status”, default: “new” # t.decimal “pay_total”, precision: 8, scale: 2, null: false end add_index “orders”, [“order_id”], name: “index_orders_on_order_id”, unique: true, using: :btree add_index “orders”, [“order_status”], name: “index_orders_on_order_status”, using: :btree create_table “orders_products”, id: false, force: true […]

Activerecord在datetime中按时间查找记录

我正在尝试执行一个活动记录查询,通过查看datetime字段按时间返回记录。 具体来说,我希望获得在凌晨1点到早上6点之间创建的所有记录,而不是关心它们创建的那一天,只是确保时间在该范围内。 所以,如果我有记录: 1: car=> “Honda”, color: “blue”, created_at => “2014-11-13 01:15:00” 2: car=> “Toyota”, color: “red”, created_at => “2014-11-17 04:15:00” 3: car=> “Honda”, color: “red”, created_at => “2014-11-20 10:15:00” 应返回第一个和第二个记录。

Ruby on Rails,其中查询具有嵌套关系

我学会了如何使用来自这个问题的关系查询。 Ruby on Rails在哪里查询关系 但是,我仍然无法使用这种嵌套案例。 如何使Summaries控制器索引工作? 模型 User has_many :projects, dependent: :destroy has_many :reasons, through: :projects has_many :summaries, through: :projects, source: :reasons has_many :entries, through: :projects Project belongs_to :user has_many :reasons has_many :entries, through: :reasons Reasons belongs_to :project has_many :entries, dependent: :destroy has_many :summaries, dependent: :destroy Summary belongs_to :reason Entry belongs_to :reason EntriesController # GET […]

更改post循环排序的链接

我正试图在我的页面中实现链接,允许我更改我的post显示的顺序。类似于Reddit上的’Recent’,’Hot’和’Oldest’。 我目前默认拥有 PostsController.rb def index @posts = Post.order(‘created_at DESC’).all.paginate(page: params[:page], per_page: 20) end 我如何添加链接到一个方法来反转post到ASC的流量,或者显示像模型上的特定列下降的post,如视图? 乔恩

Rails 5.1:销毁“has_many:through”与限制关联的记录

我有经典的has_many: through关系: class UserGroup < ApplicationRecord has_many :user_groups_users has_many :users, through: :user_groups_users end class UserGroupsUser < ApplicationRecord belongs_to :user_group belongs_to :user end class User < ApplicationRecord has_many :user_groups_users has_many :user_groups, through: :user_groups_users end 为了销毁UserGroup记录,我需要销毁UserGroup相应记录,这两个记录都是gem的一部分。 否则我会收到错误,即有用户绑定到UserGroups,我无法销毁特定​​的UserGroup 。 在我的控制器中,我有这个: def destroy @user_group = UserGroup.find(params[:id]) UserGroupsUser.where(user_group_id: @user_group).destroy_all respond_to do |format| if @user_group.destroy format.js { flash.now[:notice] = “User group […]