我正在使用 Rails 引擎,它定义了一个具有以下关系的类:
module Blogit
class Post < ActiveRecord::Base
...
belongs_to :blogger, :polymorphic => true
...
end
Run Code Online (Sandbox Code Playgroud)
我正在尝试在装饰器文件中覆盖此关联。也就是说,如果可能的话,我不希望这种关联存在。
在我的装饰器文件中,我使用 class_eval 来扩展类定义。
Blogit::Post.class_eval do
...
end
Run Code Online (Sandbox Code Playgroud)
但我似乎无法覆盖或破坏这种关系。有人知道怎么做吗?
在rails初始化文件中,有一行用于配置接受符号的活动对象:
config.objects += [ :room, :hotel, ..etc ]
Run Code Online (Sandbox Code Playgroud)
这些符号表示我想要配置的类.
我的问题是我使用的是一个rails引擎,它定义了我想要配置的'Blogit :: Post'模块类.如何将其作为符号添加到配置数组中?
在DDD中,分页查询的验证逻辑应该放在哪里?例如,如果服务层接收到具有类似(在Go中)的参数的集合的查询,尽管可以用任何语言回答:
// in one file
package repositories
type Page struct {
Limit int
Offset int
}
// Should Page, which is part of the repository
// layer, have validation behaviour?
func (p *Page) Validate() error {
if p.Limit > 100 {
// ...
}
}
type Repository interface {
func getCollection(p *Page) (collection, error)
}
// in another file
package service
import "repositories"
type Service struct {
repository repositories.Repository
}
// service layer
func (s *Service) getCollection(p *repositories.Page) (pages, error) …Run Code Online (Sandbox Code Playgroud) architecture validation design-patterns domain-driven-design repository-pattern
我正在使用一个控制器作为子范围的指令,我正试图让它们说话.似乎当我从子控制器发出一个事件时,父指令只能在没有声明隔离范围的情况下听到这个事件.为什么在我的指令块中声明一个隔离范围$ emit会听到事件?
HTML
<flippy data-click-toggle="true" data-mouseover-toggle="true">
<flippy-front>
<div ng-controller="test">
<div class="test" ng-click="flip()">
front
</div>
</div>
</flippy-front>
<flippy-back>
<div ng-controller="test">
<div class="test" ng-click="flip()">
back
</div>
</div>
</flippy-back>
</flippy>
Run Code Online (Sandbox Code Playgroud)
JS
poop = angular.module('angular-flippy', []);
poop.directive('flippy', function() {
return {
restrict: 'E',
scope: {}, <------- works when isolate scope not declared
link: function($scope, $elem, $attrs) {
var flip = function() {
$elem.toggleClass('flipped');
}
$scope.$on("flipped", flip);
}
};
});
poop.controller('test', ['$scope', function($scope) {
$scope.flip = function() {
$scope.$emit("flipped");
};
}]);
Run Code Online (Sandbox Code Playgroud)
codepen:http: …