小编Cj *_*aro的帖子

的ActiveRecord :: HasManyThroughOrderError

我在3个模型之间有一个has_one关联,但它有一个错误,上面写着"ActionView :: Template :: Error(不能有一个has_many:通过关联'Policy#intermed',在通过关联之前通过'Policy#invoice'定义.)"

政策模式

class Policy < ApplicationRecord

    self.table_name = "gipi_polbasic"
    self.primary_key = "policy_id"

    has_one :invoice
    has_one :intermediary, through: :invoice, foreign_key: :intrmdry_intm_no
Run Code Online (Sandbox Code Playgroud)

中介模型

class Intermediary < ApplicationRecord
    self.table_name = "giis_intermediary"
    self.primary_key = "intm_no"

    has_one :invoice, foreign_key: :intrmdry_intm_no
    belongs_to :policy, foreign_key: :policy_id
Run Code Online (Sandbox Code Playgroud)

发票模型

class Invoice < ApplicationRecord
    self.table_name = "gipi_comm_invoice"
    self.primary_key = "intrmdry_intm_no"

    belongs_to :policy, foreign_key: :policy_id
    belongs_to :intermediary, foreign_key: :intrmdry_intm_no
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails

6
推荐指数
1
解决办法
2534
查看次数

rails 中的迁移将具有 1 个字符的 varchar 转换为布尔值

我有一个 oracle 数据库。在数据库中没有布尔值。但是在我迁移到 rails 之后,带有 1 个字符的 VARCHARS 变成了布尔值。如何再次将其转换为 varchar?顺便说一句,我的数据库是 oracle 10g,我使用的是最新版本的 ruby​​ 和 rails。

 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 INTM_NO                                   NOT NULL NUMBER(12)
 INTM_NAME                                 NOT NULL VARCHAR2(240)
 CO_INTM_TYPE                              NOT NULL VARCHAR2(5)
 INTM_TYPE                                 NOT NULL VARCHAR2(2)
 TIN                                       NOT NULL VARCHAR2(20)
 CORP_TAG                                  NOT NULL VARCHAR2(1)
 SPECIAL_RATE                              NOT NULL VARCHAR2(1)
 LIC_TAG                                   NOT NULL VARCHAR2(1)
 MAIL_ADDR1                                NOT NULL VARCHAR2(50)
 MAIL_ADDR2                                         VARCHAR2(50)
 MAIL_ADDR3                                         VARCHAR2(50)
 BILL_ADDR1                                NOT NULL VARCHAR2(50)
 BILL_ADDR2                                         VARCHAR2(50)
 BILL_ADDR3                                         VARCHAR2(50)
 ISS_CD                                             VARCHAR2(2)
 PHONE_NO                                           VARCHAR2(40)
 BIRTHDATE                                          DATE
 CONTACT_PERS                                       VARCHAR2(50)
 DESIGNATION                                        VARCHAR2(5)
 PARENT_INTM_NO …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails oracle10g

5
推荐指数
1
解决办法
182
查看次数

在范围内使用 find_by_sql 会出现错误:“2017-01-01”的未定义方法`value_for_database':字符串

当我尝试从某个日期范围进行搜索时出现此错误。

这是我的模型:

def self.search(search)
  if search
    @policies = Policy.find_by_sql("acct_ent_date IN ?", start_date..end_date)
  else
    limit(10)
  end
end
Run Code Online (Sandbox Code Playgroud)

sql activerecord ruby-on-rails

2
推荐指数
1
解决办法
894
查看次数

标签 统计

ruby-on-rails ×3

activerecord ×1

oracle10g ×1

sql ×1