我在rails 4中遇到“attr_accessor”问题
我有一个有很多关联的模型,当我使用attr_accessor时,我把field_name但是我的关联我有很多具有相同字段名的表。
例如
class User < ActiveRecord::Base
has_one :agent
has_one :language
attr_accessor :code
end
但我有一个字段:代理表和语言表中的代码。 我试图在互联网上找到解决方案,但没有成功
有没有办法指定表名?
答案 0 :(得分:1)
您可以使用这些方式从code
模型
user
模型
class User < ActiveRecord::Base
has_one :agent
has_one :language
delegate :code, to: :agent, prefix: true, allow_nil: true
delegate :code, to: :language, prefix: true, allow_nil: true
end
举个例子:
现在您可以访问User.first.agent_code
agent
模型User.first.language_code
了解language
模型
code
您可以按特定型号明智地访问特定的app.factory('userService',['$rootScope', "$timeout", function($rootScope, $timeout){
var user = {};
return {
getFirstname : function () {
return user.firstname;
},
setFirstname : function (firstname) {
user.firstname = firstname;
$timeout(function(){
$rootScope.$broadcast("updates");
}, 1000)
}
}
}]);
app.controller('MainCtrl',['userService','$scope','$rootScope', function(userService,$scope,$rootScope) {
userService.setFirstname("bharat");
$scope.name = userService.getFirstname();
$rootScope.$on("updates",function(){
$scope.name = userService.getFirstname();
});
}]);
app.controller('one',['userService','$scope', function(userService,$scope) {
$scope.updateName=function(){
userService.setFirstname($scope.firstname);
}
}]);
答案 1 :(得分:-1)
要明确指定表名,请使用
class User < ActiveRecord::Base
self.table_name = "table_name"
end