我需要做这样的事情:
class PlanetEdge < ActiveRecord::Base
enum :first_planet [ :earth, :mars, :jupiter]
enum :second_planet [ :earth, :mars, :jupiter]
end
我的表是一个边的表,但每个顶点都是一个整数。
然而,看起来铁路上不可能出现这种情况。什么可能是制作字符串列的替代方法?
答案 0 :(得分:8)
如果您按http://edgeapi.rubyonrails.org/classes/ActiveRecord/Enum.html
运行rails 5.0或更高版本当您需要定义具有相同值的多个枚举时,可以使用:_prefix或:_suffix选项。如果传递的值为true,则方法的前缀/后缀为枚举的名称。也可以提供自定义值:
class Conversation < ActiveRecord::Base
enum status: [:active, :archived], _suffix: true
enum comments_status: [:active, :inactive], _prefix: :comments
end
通过上面的例子,bang和谓词方法以及相关的范围现在都是相应的前缀和/或后缀:
conversation.active_status!
conversation.archived_status? # => false
conversation.comments_inactive!
conversation.comments_active? # => false
答案 1 :(得分:2)
也许它将提取行星作为另一种模式?
$scope.showStuff = function () {
$scope.initInputFields();
$scope.startFade = false;
$timeout(function(){
$scope.hidden = false;
}, 700);
};
$scope.initInputFields = function() {
$scope.inputFileds = [{
"label": "input1",
"value": ""
},{
"label": "input2",
"value": ""
},{
"label": "input3",
"value": ""
},{
"label": "input4",
"value": ""
}];
};
$scope.initInputFields();
您可以使用class Planet < ActiveRecord::Base
enum type: %w(earth mars jupiter)
end
class PlanetEdge < ActiveRecord::Base
belongs_to :first_planet, class_name: 'Planet'
belongs_to :second_planet, class_name: 'Planet'
end
:
accepts_nested_attributes_for