首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应为Lab,已获取字符串

应为Lab,已获取字符串
EN

Stack Overflow用户
提问于 2012-08-16 05:44:19
回答 2查看 478关注 0票数 0

我喜欢案例模型。案例模型有3个字段作为实验室模型的id。

in Case模型

代码语言:javascript
复制
belongs_to :lab1, foreign_key: 'lab1', class_name: 'Lab', inverse_of: :lab1, conditions: {step1: true}
belongs_to :lab2, foreign_key: 'lab2', class_name: 'Lab', inverse_of: :lab2, conditions: {step2: true}
belongs_to :lab3, foreign_key: 'lab3', class_name: 'Lab', inverse_of: :lab3, conditions: {step3: true}

在实验模型中

代码语言:javascript
复制
has_many :lab1, foreign_key: 'lab1', class_name: 'Case', inverse_of: :lab1
has_many :lab2, foreign_key: 'lab2', class_name: 'Case', inverse_of: :lab2
has_many :lab3, foreign_key: 'lab3', class_name: 'Case', inverse_of: :lab3

以及在case veiw中的形式

代码语言:javascript
复制
 .lab_group
   = f.association :lab1, label: false, input_html: {'data-placeholder'=> t('step.one')}
   = f.input :lab1_delivered, label: t('case.done')
 .lab_group
   = f.association :lab2, label: false, input_html: {'data-placeholder'=> t('step.two')}
   = f.input :lab2_delivered, label: t('case.done')
.lab_group
   = f.association :lab3, label: false, input_html: {'data-placeholder'=> t('step.three')}
   = f.input :lab3_delivered, label: t('case.done')

但当我尝试保存它时,我弄错了

代码语言:javascript
复制
Lab(#70207759169540) expected, got String(#70207716712320)

并请求参数

代码语言:javascript
复制
{"utf8"=>"✓",
 "authenticity_token"=>"G0BWY6V6tkxRt81I0ZOxKXs8RD/7cdfbZfhVfRTmboo=",
 "case"=>{"number"=>"123",
 "doctor_id"=>"1",
 "lab1"=>"1",
 "lab1_delivered"=>"0",
 "lab2"=>"2",
 "lab2_delivered"=>"0",
 "lab3"=>"2",
 "lab3_delivered"=>"0",
 "delivered"=>"0",
 "patient"=>"",
 "comment"=>"for example"},
 "commit"=>"Save"}

和屏幕

我怎么才能修复它?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-16 17:46:55

解决方案:

我的cases表中有lab1、lab2、lab3列。但是foreign_key没有看到。我更改了lab1、lab2和lab3的名称,比如lab1_id、lab2_id和lab3_id。

我从关联中删除了foreign_key。

让我们看看。

in case模型

代码语言:javascript
复制
belongs_to :lab1, class_name: 'Lab', inverse_of: :lab1, conditions: {step1: true}
belongs_to :lab2, class_name: 'Lab', inverse_of: :lab2, conditions: {step2: true}
belongs_to :lab3, class_name: 'Lab', inverse_of: :lab3, conditions: {step3: true}

在实验模型中

代码语言:javascript
复制
has_many :lab1, class_name: 'Case', inverse_of: :lab1
has_many :lab2, class_name: 'Case', inverse_of: :lab2
has_many :lab3, class_name: 'Case', inverse_of: :lab3

在形式上

代码语言:javascript
复制
.lab_group
  = f.association :lab1, label: false, input_html: {'data-placeholder'=> t('step.one')}
  = f.input :lab1_delivered, label: t('case.done')
.lab_group
  = f.association :lab2, label: false, input_html: {'data-placeholder'=> t('step.two')}
  = f.input :lab2_delivered, label: t('case.done')
.lab_group
  = f.association :lab3, label: false, input_html: {'data-placeholder'=> t('step.three')}
  = f.input :lab3_delivered, label: t('case.done')

foreign_key不工作:(它是错误吗?也许是吧。

票数 1
EN

Stack Overflow用户

发布于 2012-08-16 06:05:10

我认为您在这里使用的名称是lab1,lab2,lab3,而不是lab1_id,lab2_id,lab3_id作为foreign_keys名称。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11977810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档