Rails 5过滤字段

时间:2016-09-09 20:58:58

标签: ruby-on-rails activerecord

所以,在Rails控制台中我以这种方式创建一行:

class Question < ApplicationRecord
   belongs_to :user
   has_many   :answer

   default_scope { order('id DESC') }

   validates :question, presence: true
end 

任何人都可以看到,Rails正在过滤“active”和“qtype”字段。这两列都存在于迁移文件和PostgreSQL表中。该模型非常基础:

app.factory('artistService', ['$http', function($http) {
  var artistsList = [];

  var factory = {
    getArtists: function() {
      $http.get('artists.json').success(function(data) {
        for (var i = 0; i < data.length; i++) {
          artistsList.push(data[i]);
        }
      });
    },
    getArtistsData: function() {
      return artistsList;
    },
    clearArtistsData: function() {
      artistsList = [];
    }
  }
  return factory;
}]);

app.controller('MainCtrl', ['$scope', 'artistService', function($scope, artistsService) {
  var vm = this;
  artistsService.getArtists();
  vm.artistsData = artistsService.getArtistsData();
  vm.itemsByPage = 4;
  vm.searchQuery = '';
  vm.name='';
  console.log(vm); 
}]); 

我不明白为什么rails会过滤这些字段。我删除了schema.rb文件并从头创建了数据库,但错误仍然存​​在。

1 个答案:

答案 0 :(得分:1)

以前报道的问题是在PostgreSQL中具有NULL值的布尔值没有被rails正确设置。

如果您使用默认值重新创建字段,它应该解决它。滚动迁移,然后使用...重新创建

add_column :questions, :active, :boolean, default: false
add_column :questions, :qtype, :boolean, default: false

顺便提一下,行......

has_many :answer

应该是......

has_many :answers