Tag: activerecord

gmail和parse_resource gems之间的Ruby自动加载冲突

早些时候 ,我问过gmail gem中的autoload无法找到它想要加载的文件。 在构建一个最小的脚本时,我发现当我没有包含parse_resource gem时,gmail gem加载了它的文件。 gmail gem允许您从Gmail访问您的电子邮件,标签和收件箱。 parse_resource gem将parse.com api包装在ActiveRecord模式中。 如果我在gmail gem 之前包含parse_resource gem,ruby会抛出一个LoadError。 这些是我写的最小脚本的排列,由错误组织。 LoadError require ‘rubygems’ require ‘parse_resource’ require ‘gmail’ Gmail.new(‘yourEmail@gmail.com’, ‘password’) 工作良好 require ‘rubygems’ #require ‘parse_resource’ require ‘gmail’ Gmail.new(‘yourEmail@gmail.com’, ‘password’) 自动加载错误 require ‘rubygems’ require ‘gmail’ require ‘parse_resource’ Gmail.new(‘yourEmail@gmail.com’, ‘password’) /Library/Ruby/Gems/1.8/gems/gmail-0.4.0/lib/gmail.rb:50:in ‘new’: no such file to load — gmail/client (LoadError) from emailError.rb:6 […]

删除“重复对象”

假设我有一个来自同一个类的对象数组,这里有两个值得关注的属性:name和created_at。 如何在数组中找到具有相同名称的对象(被视为重复),然后删除数据库中的重复记录。 但是,具有最新created_at日期的对象是必须删除的对象。

活动模型禁止属性错误

有人能够帮助我理解这个错误。 我正在尝试按照构建Web应用程序教程在rails中创建联系表单。 我按照步骤生成了一个消息支架。 然后我修改了我的路线。 接下来它说把它放到消息控制器show动作中。 if @message.save flash[:notice] = ‘Thanks for Your Message’ format.html { redirect_to root_path } 我已经这样做了,我在MessagesController中得到以下错误ActiveModel :: ForbiddenAttributesError #create ActiveModel :: ForbiddenAttributesError 这是我的消息控制器文件 class MessagesController < InheritedResources::Base def show if @message.save flash[:notice] = 'Thanks for Your Message' format.html { redirect_to root_path } end end end 我的路线文件如下 # devise_for :users 资源:产品做资源:订单,只有:[:new,:create] #tells rails需要产品ID号码结束 […]

TypeError:nil不是符号

只是尝试使用ActiveRecord保存,我不断得到“TypeError:nil不是符号” if card_data[:card] and card_data[:deck] e = self.find_or_create_by(card_id: card_data[:card].id, deck_id: card_data[:deck].id, main: main) e.card = card_data[:card] e.deck = card_data[:deck] e.quantity = card_data[:quantity].to_i e.main = main pe e.save if e.card and e.deck end 我运行上面的代码。 架构: create_table “entries”, id: false, force: true do |t| t.integer “card_id” t.integer “deck_id” t.integer “quantity”, default: 0, null: false t.integer “main”, default: […]

Rails:在具有警告的子文件夹中组织模型:toplevel由B :: A引用的常量A.

今天我决定重新组织大量与用户相关的模型,我遇到了问题。 在我有这样的结构之前: app/models/user.rb app/models/user_info.rb app/models/user_file.rb … 所以我将所有user_模型移动到用户子文件夹,如下所示: app/models/user.rb app/models/user/info.rb app/models/user/file.rb … 并将其定义更改为 class User::Info < ActiveRecord::Base class User::File < ActiveRecord::Base … User模型未更改(关联除外)。 除User::File模型外,一切正常。 当我试图访问此模型时,我收到以下错误: warning: toplevel constant File referenced by User::File 实际上它返回标准的ruby File类。 我做错了什么? UPD1: root# rails c Loading development environment (Rails 3.2.13) 2.0.0p195 :001 > User::File (irb):1: warning: toplevel constant File referenced by User::File […]

Ruby on Rails:全function无表格模型

在搜索无表格模型示例后,我遇到了这个代码,这似乎是关于如何创建一个代码的一般共识。 class Item < ActiveRecord::Base class_inheritable_accessor :columns self.columns = [] def self.column(name, sql_type = nil, default = nil, null = true) columns << ActiveRecord::ConnectionAdapters::Column.new(name.to_s, default, sql_type.to_s, null) end def all return [] end column :recommendable_type, :string #Other columns, validations and relations etc… end 但是我还希望它能够像模型那样起作用,代表一个对象的集合,这样我就可以做Item.all。 计划是使用文件填充项目,并从文件中提取每个项目的属性。 但是目前如果我做Item.all我会得到一个 Mysql2::Error Table ‘test_dev.items’ doesn’t exist… 错误。

Rails ActiveRecord:回滚保存嵌套模型

使用Rails 5: gem ‘rails’, ‘~> 5.0.0’, ‘>= 5.0.0.1’ 我已经创建了一个我能想到的最简单的例子来演示这个问题: parent.rb class Parent < ApplicationRecord has_many :children accepts_nested_attributes_for :children end child.rb class Child < ApplicationRecord belongs_to :parent end 创建父,保存,创建子,保存(工作) 使用rails console ,创建一个新的父级,然后保存,然后从父级构建子级,然后保存父级,工作正常: irb(main):004:0> parent = Parent.new => # irb(main):005:0> parent.save (0.5ms) BEGIN SQL (0.4ms) INSERT INTO `parents` (`created_at`, `updated_at`) VALUES (‘2016-09-25 13:05:44’, ‘2016-09-25 13:05:44’) (3.2ms) COMMIT […]

在Rails中构建一个简单的搜索表单?

我正在尝试在Ruby on Rails中构建一个简单的搜索表单,我的表单很简单,基本上你从一系列选项中选择字段,然后显示匹配字段的所有事件。 当我将任何字段留空时问题就出现了。 以下是负责过滤参数的代码 Event.joins(:eventdates).joins(:categories).where (“eventdates.start_date = ? AND city = ? AND categories.name = ?”, params[:event][:date], params[:event][:city], params[:event][:category]).all 从我得到它是它寻找具有任何空字段的事件,但由于它们都没有空,它不会匹配,除非所有3都被填充,当我试图说,在范围或数组内查看事件时出现另一个问题日期,我对如何通过多天进入搜索毫无头绪。 我一般都很擅长制作搜索表单,所以我甚至不知道这是否是最好的方法,我也试图在不需要特殊模型的情况下保持搜索。

OmniAuth Railscast中的DangerousAttributeError教程:create由ActiveRecord定义

我在SO上查看了ActiveRecord :: DangerousAttributeError和其他类似的线程,但它们没有解决同样的问题。 我正在关注omniauth教程: http ://railscasts.com/episodes/235-omniauth-part-1?view = ascicast 我可以通过oauth通过Twitter进行身份validation并返回用户的数据(auth)。 问题是由于此错误消息,我无法在数据库(sqlite3)中创建/保存它。 错误: ActiveRecord::DangerousAttributeError in AuthenticationsController#create create is defined by ActiveRecord Rails.root: /beta/devise-omniauth1 Application Trace | Framework Trace | Full Trace app/controllers/authentications_controller.rb:15:in `create’ Authentications_Controller: def create auth = request.env[“omniauth.auth”] current_user.authentications.create(:provider => auth[‘provider’], :uid => auth[‘uid’]) flash[:notice] = “Authentication successful.” redirect_to authentications_url end 楷模: class Authentication < ActiveRecord::Base […]

Rails Postgresql多个模式和相同的表名

我有两个不同模式的表,例如cases和events 。 在每个模式中,我有基本的表 events.basic cases.basic 这个表有关系: events.basic有一个cases.basic ( cases.basic有很多events.basic ) 我的尝试失败了: 文件cases_basic.rb class CasesBasic ‘EventsBasic’, :foreign_key => ‘case_id’ end file events_basic.rb class EventsBasic ‘CasesBasic’, :foreign_key => ‘case_id’ end 环境:Ruby 1.9.3 ,Rails 3.1.3 , gem ‘pg’ 我需要回答这个问题: 如何在Rails Active Record中处理这种情况? 如何查询这个表? 如何在rake db:schema:dump处理这种情况 编辑: 更改belongs_to和has_many (如Catcall建议)我有同样的错误 PGError: ERROR: column basic.case_id does not exist LINE 1: …IN […]