小编Anc*_*hor的帖子

是否可以在装饰器中覆盖 Rails 引擎模型关联?

我正在使用 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)

但我似乎无法覆盖或破坏这种关系。有人知道怎么做吗?

ruby-on-rails rails-engines ruby-on-rails-3.2

5
推荐指数
0
解决办法
259
查看次数

如何将模块类名转换为rails中的符号

在rails初始化文件中,有一行用于配置接受符号的活动对象:

config.objects += [ :room, :hotel, ..etc ]
Run Code Online (Sandbox Code Playgroud)

这些符号表示我想要配置的类.

我的问题是我使用的是一个rails引擎,它定义了我想要配置的'Blogit :: Post'模块类.如何将其作为符号添加到配置数组中?

ruby ruby-on-rails rails-engines

3
推荐指数
1
解决办法
2293
查看次数

哪里可以验证域驱动设计中的分页逻辑?

在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

2
推荐指数
2
解决办法
719
查看次数

为什么声明隔离范围会阻止$发出事件?

我正在使用一个控制器作为子范围的指令,我正试图让它们说话.似乎当我从子控制器发出一个事件时,父指令只能在没有声明隔离范围的情况下听到这个事件.为什么在我的指令块中声明一个隔离范围$ 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: …

angularjs angularjs-directive angularjs-scope

1
推荐指数
1
解决办法
2360
查看次数