make migrate时出错undefined methode'interger'

时间:2016-12-01 11:20:26

标签: ruby-on-rails ruby postgresql migration

我正在使用Ruby构建一个数据库,但是当我尝试创建一个模型(数据库表)时,出现了几个错误,我不明白什么是“在更改中阻塞”和“更改”。这是错误。

>C:\Users\MINH\Monika>rake db:migrate
>== 20161130153857 CreatePages: migrating ======================================
>-- create_table(:pages)
>rake aborted!
>StandardError: An error has occurred, this and all later migrations canceled:

>undefined method `interger' for #><ActiveRecord::ConnectionAdapters::PostgreSQL::TableDefinition:0x58a4528>
>C:/Users/MINH/Monika/db/migrate/20161130153857_create_pages.rb:11:in `block in >change'
>C:/Users/MINH/Monika/db/migrate/20161130153857_create_pages.rb:3:in `change'
>NoMethodError: undefined method `interger' for #>>>..<ActiveRecord::ConnectionAdapters::PostgreSQL::TableDefinition:0x58a4528>
>C:/Users/MINH/Monika/db/migrate/20161130153857_create_pages.rb:11:in `block in >change'
>C:/Users/MINH/Monika/db/migrate/20161130153857_create_pages.rb:3:in `change'
>Tasks: TOP => db:migrate
>(See full trace by running task with --trace)

这是迁移

>class CreatePages < ActiveRecord::Migration[5.0]
>  def change
>    create_table :pages do |t|
>      t.string :name
>      t.text :description
>      t.text :address
>      t.text :contact
>      t.string :profile_image
>      t.string :cover_image
>      t.string :look_book
>      t.interger :seller_id
>
>     t.timestamps 
>    end
>  end
>end

1 个答案:

答案 0 :(得分:2)

试试这个:

int main(int argc, char **argv)
{

    cv::VideoCapture cam(0);
    cv::Mat img(480, 640, CV_8UC3, cv::Scalar(0, 0, 0));
    cv::Mat img2(480, 640, CV_8UC3, cv::Scalar(0, 0, 0));

    cv::Ptr<cv::AKAZE> akaze = cv::AKAZE::create();
    std::vector<cv::KeyPoint> kp;
    cv::Mat descr;

    while (1)
    {
        cam >> img;
        cv::Mat aka;
        akaze->detectAndCompute(img, cv::noArray(), kp, descr);
        cv::drawKeypoints(img, kp, aka);
        cv::imshow("AKAZE", aka);

        if (cv::waitKey(10) == 's')
        {
            break;
        }
        kp.clear();
    }
    akaze.release();

    std::vector<cv::KeyPoint> kp_query;
    cv::Mat descr_query;
    cv::Ptr<cv::AKAZE> akaze2 = cv::AKAZE::create();

    while (1)
    {
        cv::Mat aka;
        cam >> img2;
        akaze2->detectAndCompute(img2, cv::noArray(), kp_query, descr_query);

        cv::BFMatcher matcher(cv::NORM_HAMMING);
        std::vector<cv::DMatch> matches;
        matcher.match(descr_query, descr, matches);

        double max_dist = 0, min_dist = 100.0;
        for (int i = 0; i<descr_query.rows; i++)
        {
            double dist = matches[i].distance;
            if (dist < min_dist) min_dist = dist;
            if (dist > max_dist) max_dist = dist;
        }
        printf("-- Max dist : %f \n", max_dist);
        printf("-- Min dist : %f \n", min_dist);
        std::vector<cv::DMatch> good_matches;

        for (int i = 0; i<descr_query.rows; i++)
        {
            if (matches[i].distance < 3 * min_dist)
                good_matches.push_back(matches[i]);
        }

        std::vector<cv::Point2f> train, query;

        for (int i = 0; i<good_matches.size(); i++)
        {
            train.push_back(kp[good_matches[i].queryIdx].pt);
            query.push_back(kp_query[good_matches[i].trainIdx].pt);
        }

        cv::Mat output_mask;
        cv::Mat H = cv::findHomography(train, query, CV_RANSAC, 3, output_mask);


        cv::Mat m;
        cv::drawMatches(img, kp, img2, kp_query, good_matches, m, cv::Scalar::all(-1), cv::Scalar::all(-1),
        std::vector<char>(), cv::DrawMatchesFlags::NOT_DRAW_SINGLE_POINTS);
        cv::imshow("match", m);

        cv::drawKeypoints(img2, kp_query, aka);

        cv::waitKey(10);
        kp_query.clear();
    }
}