Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Activerecord rails 4简单表单属于关联未定义方法错误_Activerecord_Ruby On Rails 4_Simple Form - Fatal编程技术网

Activerecord rails 4简单表单属于关联未定义方法错误

Activerecord rails 4简单表单属于关联未定义方法错误,activerecord,ruby-on-rails-4,simple-form,Activerecord,Ruby On Rails 4,Simple Form,使用rails 4,当我想从对象Document::Document呈现表单(使用简单表单)时,我有一个错误:undefined method Document\u type\u id for# 这里是我的模型的一部分: class Document::Document < ActiveRecord::Base ... belongs_to :document_type, -> {include(:translations)}, :class_name => 'Do

使用rails 4,当我想从对象Document::Document呈现表单(使用简单表单)时,我有一个错误:
undefined method Document\u type\u id for#

这里是我的模型的一部分:

class Document::Document < ActiveRecord::Base
   ...
   belongs_to :document_type, -> {include(:translations)}, :class_name => 'Document::Type'
   ...
end
以及表单的一部分,使用简单的_形式:

=f.association :document_type, prompt: t('document.documents.form.choose_document_type'), collection: Document::Type.includes(:translations)
错误:

undefined method `document_type_id' for #<Document::Document:0x007fada4a50240>
Extracted source (around line #14):

   11    .row
   12      =f.input :language, collection: languages_list, prompt: t("document.documents.form.choose_language"), label_html: tooltip(t('document.documents.forms.tooltips.language')), wrapper_html: {class: 'columns large-4'}, input_html: {class: 's2'}
   13      =f.input :study_level, prompt: t('document.documents.form.choose_study_level'), label_html: tooltip(t('document.documents.forms.tooltips.study_level')), wrapper_html: {class: 'columns large-4'}, input_html: {class: 's2'}
   14      =f.association :document_type, prompt: t('document.documents.form.choose_document_type'), collection: Document::Type.includes(:translations), label_html: tooltip(t('document.documents.forms.tooltips.type')), wrapper_html: {class: 'columns large-4'}, input_html: {class: 's2'}
   15      -#=f.association :domains, collection: Domain.includes(:translations).order('name ASC'), label_html: tooltip(t('document.documents.forms.tooltips.domains')), input_html: {class: 's2'}
   16    .form-actions
   17       =f.button :submit, t('document.documents.form.submit') 

可能错误来自那里

检查简单表单Gem的版本。应大于等于3.0.0 不确定simple_form gem是如何工作的,但rails 4不再使用attr_accessible(尽管如此,您可以安装gem,但它很可能很快就会被弃用)

Rails 4现在使用。基本上是这样工作的:在控制器中的私有方法中定义要使用的白名单参数,因此如果您的文档类型id不在列表中,它将被忽略

Rails 4 scaffold generator会自动添加此方法,并默认接受所有参数(如果您想查看其外观)


希望有帮助

检查简单表单Gem的版本。应大于等于3.0.0 不确定simple_form gem是如何工作的,但rails 4不再使用attr_accessible(尽管如此,您可以安装gem,但它很可能很快就会被弃用)

Rails 4现在使用。基本上是这样工作的:在控制器中的私有方法中定义要使用的白名单参数,因此如果您的文档类型id不在列表中,它将被忽略

Rails 4 scaffold generator会自动添加此方法,并默认接受所有参数(如果您想查看其外观)


希望有帮助

很抱歉给您带来不便

这是一个移民问题。其他人更改了迁移文件,数据库表中不再存在
文档类型\u id
字段

我花了一段时间才发现这个愚蠢的问题


感谢您的回复,并为给您带来的不便表示歉意

这是一个移民问题。其他人更改了迁移文件,数据库表中不再存在
文档类型\u id
字段

我花了一段时间才发现这个愚蠢的问题

谢谢你的回复和道歉

undefined method `document_type_id' for #<Document::Document:0x007fada4a50240>
Extracted source (around line #14):

   11    .row
   12      =f.input :language, collection: languages_list, prompt: t("document.documents.form.choose_language"), label_html: tooltip(t('document.documents.forms.tooltips.language')), wrapper_html: {class: 'columns large-4'}, input_html: {class: 's2'}
   13      =f.input :study_level, prompt: t('document.documents.form.choose_study_level'), label_html: tooltip(t('document.documents.forms.tooltips.study_level')), wrapper_html: {class: 'columns large-4'}, input_html: {class: 's2'}
   14      =f.association :document_type, prompt: t('document.documents.form.choose_document_type'), collection: Document::Type.includes(:translations), label_html: tooltip(t('document.documents.forms.tooltips.type')), wrapper_html: {class: 'columns large-4'}, input_html: {class: 's2'}
   15      -#=f.association :domains, collection: Domain.includes(:translations).order('name ASC'), label_html: tooltip(t('document.documents.forms.tooltips.domains')), input_html: {class: 's2'}
   16    .form-actions
   17       =f.button :submit, t('document.documents.form.submit') 
attr_accessible :document_type_id, ...