我有一个错误,没有解释。
我的错误:
class AddColumnToReports < ActiveRecord::Migration
def change
add_reference :reports, :conjoncture_indice, index: true
add_foreign_key :reports, :conjoncture_indices
end
end
我的迁移:
class CreateConjonctureIndices < ActiveRecord::Migration
def change
create_table :conjoncture_indices do |t|
t.date :date
t.float :value
t.timestamps null: false
end
end
end
我的创建表格迁移:
class ConjonctureIndice < ActiveRecord::Base
has_many :reports
by_star_field :date
end
我的模特:
create_table "conjoncture_indices", force: :cascade do |t|
t.date "date"
t.float "value"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
我的ConjonctureIndice shema.rb部分:
$contentTable=array();
function getNameProcess($id)
{
$time1=microtime(true);
if(empty($GLOBALS['contentTable']))
{
$baseClass = new MsDatabase();
$query = "select CON_VALUE,CON_ID from content WHERE CON_CATEGORY = 'PRO_TITLE'";
$result= $baseClass->query($query,WF_WORKFLOW_DB_NAME_MARKAZE);
$GLOBALS['contentTable'] = array();
foreach($result as $R) {
if ($R['CON_VALUE'] != '') $GLOBALS['contentTable'][$R['CON_ID']] = $R['CON_VALUE'];
}
}
$retval = 0;
if (isset($GLOBALS['contentTable'][$id])) {
$retval = $GLOBALS['contentTable'][$id];
}
$time2=microtime(true);
$timeTotal=($time2-$time1);
echo $timeTotal;
return $retval;
}
我在我的项目中寻找“conjoncture_index”,但没有...我认为项目的旧版本使用“conjoncture_index”而不是“conjoncture_indice”,但所有出现都会被删除。
答案 0 :(得分:5)
在rails中,迁移名称是复数,而模型名称是单数。所以模型名称应该是索引,但它不能是一个保留关键字,其复数转换为ConjunctureIndices。
注意 - 如果您仍然有疑问,那么您可以删除并重新创建数据库,但我怀疑命名约定是您的问题。
答案 1 :(得分:0)
好的,我发现了问题。我认为错误信息与以前相同,但他引用另一个名为&#34; confidence_indices&#34;的表。错误来自&#34; indice&#34;单词..当我删除它时我没有问题。