我想在我的控制器中编写一个before_filter来识别接下来要执行的操作.这是出于授权目的(这有点像role_requirement插件那样做..)
例如:如果用户键入此URL http://localhost:3000/users,则默认为用户/索引操作.在我的用户控制器中,我有一个前过滤器方法说'check_permission',我希望该方法将'index'作为动作.
我有一个Rails 4示例项目(博客),我创建了一个名为'request_timer'的简单中间件 config/initializers/request_timer.rb
#config/initializers/request_timer.rb
class RequestTimer
def initialize(app)
@app = app
end
def call(env)
start_time = Time.now
status, headers, response = @app.call(env)
stop_time = Time.now
[status, headers, response.body]
end
end
Run Code Online (Sandbox Code Playgroud)
我config/application.rb以两种方式添加了我的中间件
1)添加为常量
#config/application.rb
module Blog
class Application < Rails::Application
config.middleware.use RequestTimer
end
end
Run Code Online (Sandbox Code Playgroud)
这样当我尝试运行我的rails应用程序时,我收到了错误
/Users/sameera/workspace/ruby-rack/blog/config/application.rb:9:in `require': cannot load such file -- request_timer (LoadError)
from /Users/sameera/workspace/ruby-rack/blog/config/application.rb:9:in `<top (required)>'
from /Users/sameera/.rvm/gems/ruby-2.0.0-p247/gems/railties-4.0.2/lib/rails/commands.rb:74:in `require'
from /Users/sameera/.rvm/gems/ruby-2.0.0-p247/gems/railties-4.0.2/lib/rails/commands.rb:74:in `block in <top (required)>'
from /Users/sameera/.rvm/gems/ruby-2.0.0-p247/gems/railties-4.0.2/lib/rails/commands.rb:71:in `tap'
from /Users/sameera/.rvm/gems/ruby-2.0.0-p247/gems/railties-4.0.2/lib/rails/commands.rb:71:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in …Run Code Online (Sandbox Code Playgroud) 我正在研究我的第一个Angular项目,目前仍在坚持(再次).
我的问题是我有两个需要在Angular配置中实现的功能.
我无法理解的是,两个模块都使用<angular module>.config,我不知道如何将这两个结合起来,因为当我阅读Angular文档时,它似乎得到了一个名称和一个函数.
以下是我目前的代码(这两个单独的工作)
var myApp = angular.module('myApp', ['ui.router'])
.config(function($stateProvider, $urlRouterProvider){
$urlRouterProvider.otherwise("/state1");
$stateProvider
.state('state1',{
url: 'state1',
templateUrl: "../pages/form.html"
});
$locationProvider.html5Mode(false);
});
myApp = angular.module('myApp', ['facebook'])
.config([
'FacebookProvider',
function(FacebookProvider) {
var myAppId = '<FB app id>';
FacebookProvider.init(myAppId);}
]
)
Run Code Online (Sandbox Code Playgroud)
如何将这两个功能合并为一个
var myApp = angular.module('myApp', ['facebook','ui.router']).config(
facebook functon and ui-route function
)
Run Code Online (Sandbox Code Playgroud)
我在这里发现了几乎相同的SO问题,但遗憾的是没有答案.
我正在使用ion-slide-box,但问题是,我的ion-slides高度并不相同,所以它将所有的ion-slides 设置为高度的大小.以下是一个例子
因此,ion-slide-box高度将为100px,这将在slide1中创建一个空白区域(70px).当用户使用该空白区域(70px)滑动时,slider不起作用.
slidebox为不同的幻灯片高度工作的方式/解决方法是什么?
我有YAML文件需要将变量作为输入:
outputters:
- type : DateFileOutputter
name : logfile
level : DEBUG
date_pattern: '%Y%m%d'
trunc : 'false'
dirname : "/home/sameera/workspace/project/log"
filename : "message.log"
formatter :
date_pattern: '%m/%d/%Y %H:%M:%S'
pattern : '%d %l - %m'
type : PatternFormatter
Run Code Online (Sandbox Code Playgroud)
我想传递dirname一个参数,如:
dirname : "<%= LOGFILE_PATH%>"
Run Code Online (Sandbox Code Playgroud)
我LOGFILE_PATH在一个名为的文件中定义init.rb.
我有以下课程
class User
attr_accessor :name, :age, :address
def initialize()
self.name = "new user"
self.age = 19
self.address = "address"
end
end
Run Code Online (Sandbox Code Playgroud)
如果要有一个方法来获取属性的指定值,我想要什么.意思是,我有另一种方法来获取上面类中的所有方法名称
methods = self.public_methods(all = false)
Run Code Online (Sandbox Code Playgroud)
我可以从中获取方法名称(我的意思是名称的getter等).我想要一种方法来传递该方法名称(我将它作为字符串)并获取方法的返回值
例如:
当我传递'name'作为方法名称时,我应该能够获得'新用户'作为值
希望我提前明白我的问题
**请注意,我必须使用这种方式,因为我的类有很多属性,并且它有很多继承的类.因此,不可能单独访问每个attr:D
我想为rails(2.3.8)项目生成一个文档.当我尝试
rake doc:rails
rake doc:rerails
Run Code Online (Sandbox Code Playgroud)
它为所有类创建文档,包括标准ruby类和供应商目录中的所有ruby文件(插件等).
如何仅为ruby类,以下目录中的文件创建rdoc文档
在我的Rails3应用程序中,我有AR范围,需要3个参数
例如:我正在尝试在两个代码值之间获取给定模块的错误详细信息
#select * from error_codes where error_module_id=1 and code >0 and code < 100
scope :latest_error_code, lambda{ |module_id, min, max|
{:conditions => "error_module_id=#{module_id} and code >= #{min} and code <= #{max}"}
}
Run Code Online (Sandbox Code Playgroud)
在我的控制台中我做
ErrorCode.latest_error_code(1,0,100)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试执行此操作时,我收到以下错误
multiple values for a block parameter (3 for 1)
Run Code Online (Sandbox Code Playgroud)
当我做一些护目镜时,似乎AR范围内部支持多个参数
1 - 是真的吗?(AR doent支持范围的多个参数)2 - 还有其他选择吗?3 - 我在这里做错了吗?
提前致谢
activerecord scope ruby-on-rails ruby-on-rails-3 rails-activerecord
这是我的代码:
#app/models/user.rb
class User < ActiveRecord::Base
def display_name
name.split(' ').try(:first)
end
end
#spec/models/user_spec.rb
require 'rails_helper'
RSpec.describe User, :type => :model do
let(:user) { FactoryGirl.create :user }
it "should return the correct display name" do
expect ( user.display_name ).to eql("Chuck")
end
end
#spec/factories/users.rb
FactoryGirl.define do
factory :user do
provider "MyString"
uid "MyString"
name "Chuck Norris"
oauth_token "MyString"
oauth_expires_at "2014-07-24 07:31:36"
end
end
Run Code Online (Sandbox Code Playgroud)
但是,当我运行此规范时,我收到以下错误:
Failure/Error: expect ( user.display_name ).to eql("Chuck")
ArgumentError:
bad value for range
Run Code Online (Sandbox Code Playgroud)
它似乎to从rails 检查方法active support,但我认为 …
我在上搞清楚如何从我的传递参数的麻烦angular controller来
service
#my controller
'use strict';
angular.module('recipeapp')
.controller('recipeCtrl', ['$scope', 'recipeService',
function($scope, recipeService){
$scope.recipeFormData={};
$scope.recipeSave = function(){
recipeService.saveRecipe();
}
}]);
#my service
'use strict';
angular.module('recipeapp').service('recipeService',['$http', function($http){
this.saveRecipe = save;
function save(callback){
//calling external http api
}
}]);
Run Code Online (Sandbox Code Playgroud)
我在这里尝试做的是,$scope.formData从我的表单和控制器获取应该传递给service,根据我的理解,我不能$scope在里面使用service所以我需要找到一种传递$scope.formData给服务的方式
在控制器中,强硬的想法会是,recipeService.saveRecipe($scope.formData);但我不确定如何从服务中收集,
当我改变服务this.saveRecipe(val) = save;它不起作用:(
任何帮助都会得到满足
angularjs angularjs-service angularjs-scope angularjs-controller