标签: controller

在rails控制器中发出警报而不重定向

我只是想要消息通知/错误如果消息是/没有保存,没有任何重定向,我怎么能没有重定向:

  respond_to do |format|
  if @message.save
    format.html { redirect_to request.referer, :notice => 'Message sent!' } #dont want redirect
  else
    # error message here
  end
Run Code Online (Sandbox Code Playgroud)

redirect routing controller ruby-on-rails

22
推荐指数
1
解决办法
2万
查看次数

MediaController与MediaPlayer

我想要媒体控制,如播放/暂停我正在我的应用程序中播放的流媒体音频.我正在使用MediaPlayer来播放和播放音频.

有人可以提供有关如何将MediaController与MediaPlayer一起使用的代码段吗?

谢谢克里斯

android controller media-player

21
推荐指数
2
解决办法
10万
查看次数

如果我调用Factory.build以使我的控制器测试更快,我怎么能让Factory Girl永远不会打到数据库?

我正在努力让我的Rails测试更快.我只有520次测试,但他们需要62秒才能在bash中运行,而82秒则在Rubymine中运行.

作为典型控制器测试的一个例子,我使用此代码以@user身份登录,并在我的RSpec控制器测试的CommentsController中创建基本的@comment:

before(:each) do
  @user = Factory.create(:user)
  sign_in @user

  @comment = Factory.create(:comment)
end
Run Code Online (Sandbox Code Playgroud)

你可能会意识到......这很慢.它构建了一个@user,但也为该用户构建了关联.同样的@comment.

所以我认为呼叫Factory.build(:user)可以解决它...但我得到了奇怪的错误.例如,current_user退货nil.

所以......我决定Factory.build()在父控制器中使用并删除所有之前的过滤器.但是,我的rspec日志仍然表示当我之后检查RSPec日志时,TON的插入数据库正在访问数据库(我们正在讨论数百行代码,仅用于3次测试!)

  before(:each) do
    @user = Factory.build(:user)
    #sign_in @user

    controller.stub(:authenticate_user!) #before_filter
    controller.stub(:add_secure_model_data) #before_filter
    controller.stub(:current_user).and_return(@user)

    @comment = Factory.build(:comment)
  end
Run Code Online (Sandbox Code Playgroud)

可悲的事实是,上述before(:each)块对测试性能有零影响.正如我所发现的,呼叫Factory.build()仍然会在内部呼叫Factory.create()子协会.

这是一个before(:each)有效删除RSpec日志中产生的垃圾的块.它给了我35-40%的测试性能提升

  before(:each) do
    @user = Factory.build(:user, :role => Factory.build(:role))
    #sign_in @user

    controller.stub(:authenticate_user!)
    controller.stub(:add_secure_model_data)
    controller.stub(:current_user).and_return(@user)

    # both of these are still super slow. WTF?!
    @site_update = Factory.build(:site_update, :id …
Run Code Online (Sandbox Code Playgroud)

ruby unit-testing controller ruby-on-rails devise

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

AngularJS - 使用routeProvider"当"变量构造templateUrl名称?

所以这就是我想要完成的事情:

'use strict';

var app = angular.module('myModule', ['ngRoute']);

app.config(function($routeProvider) {
  $routeProvider
    .when('/', {
      redirectTo: '/pages'
    })
    .when('/pages/:pageName', {
      templateUrl: 'views/pages/'+pageName+'html',
      controller: 'MainController'
    });
});
Run Code Online (Sandbox Code Playgroud)

基本上,我想使用uri来确定使用哪个模板.目前我收到一个错误,我没有定义pageName,我理解.这样做会有什么不同的方式?谢谢!

controller angularjs angularjs-routing route-provider

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

如何创建可从任何控制器和刀片文件访问的全局功能

我有两个控制器文件homecontroller和backendcontroller.创建全局函数并从两个文件访问它的最佳方法是什么?

我在这里发现Arian Acosta的答案很有帮助,但我想知道是否有最简单的方法.我将不胜感激任何建议.

controller global laravel

21
推荐指数
5
解决办法
3万
查看次数

RoR和RSpec:如何在不定义访问器的情况下访问控制器实例变量?

我正在为我的控制器编写一个rspec测试,但我找不到解决问题的方法.对于其中一个边缘案例测试,我需要验证一个实例变量的值.如何在不必定义访问者的情况下访问它?通常默认情况下:

controller.variable.should == '3.15' 
Run Code Online (Sandbox Code Playgroud)

不起作用.

定义

attr_reader:变量

只是让测试通过将是愚蠢的,我敢肯定有一个更智能的方式.

controller rspec ruby-on-rails

20
推荐指数
1
解决办法
2万
查看次数

ASP.NET MVC:无法在我的控制器中获取字符串参数

我的控制器中有以下代码UserController:

public ActionResult Details(string name)
{
    MyModelDataContext db = new MyModelDataContext();
    Product user = db.Products.Single(t => t.Name == name);
    return View(user);
}
Run Code Online (Sandbox Code Playgroud)

我希望当我直接浏览时http://localhost:port/User/Details/SomeName,我将使用name包含"SomeName" 的" "参数来实现此功能.我确实得到了这个函数,但是" name"是null.我没有更改项目的任何默认设置.

我究竟做错了什么?

谢谢

asp.net-mvc controller

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

codeigniter重定向到不同的控制器

当用户被授权时,我试图将用户定向到我的主页面.我在login_check控制器中进行用户检查并添加$this->load->view('main');页面可以加载,但主页面中的站点地址仍然显示

HTTP:// myprojectname/login_check

但我想要它表明

http:// myprojectname/main.

我是否必须创建一个新的"主"控制器并加载视图?这对我来说听起来多余.这是我的代码.

我的一部分 login_check.php

private function _user_check()
{
    $this->load->model('user_query');  //load my model
    $result=$this->user_query->query($this->input->post('username'),$this->input->post('password'))             

    if($result)  //the user is in DB
    {
        $data['view']='main'; 
        $this->load->view('include/template', $data);
        //the address bar shows http://myproject/login_check in main page       

    }else{  //the user is not in DB

        $data['view']='login';
        $this->load->view('include/template', $data);
    }

}
Run Code Online (Sandbox Code Playgroud)

controller codeigniter

20
推荐指数
1
解决办法
8万
查看次数

如何使用rspec测试控制器方法?

我正在努力学习rspec.我似乎无法测试rails控制器方法.当我在测试中调用该方法时,rspec只返回一个未定义的方法错误.这是我的测试示例

it 'should return 99 if large' do
  GamesController.testme(1000).should == 99
end
Run Code Online (Sandbox Code Playgroud)

这是错误:

 Failure/Error: GamesController.testme(1000).should == 99
 NoMethodError:
   undefined method `testme' for GamesController:Class
Run Code Online (Sandbox Code Playgroud)

我在GamesController中有一个testme方法.我不明白为什么测试代码看不到我的方法.

任何帮助表示赞赏.

testing methods controller rspec ruby-on-rails

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

在$ routeProvider中使用resolve会导致'Unknown provider ...'

我试图在我的应用程序加载之前执行异步http请求以加载一些数据,因此我在$ routeProvider中使用了一个解析,这是我的MainController中的http请求.出于某种原因,我不断收到错误:[$ injector:unpr]未知提供者:appDataProvider < - appData其中appData是我做http请求的地方.我正在使用AngularJS v 1.2.5.

这是我尝试的代码和两个方法,它们都给出了同样的错误:

方法#1

MainController.js

var MainController = ['$scope','$location','appData',
    function($scope, $location, appData){
       console.log(appData.data);
    }
];

MainController.loadData = {
    appData: function($http, $location, MainFactory){
        var aid = MainFactory.extractAid($location);
        return $http({method: 'GET', url: URL_CONST + aid});
    }
};
Run Code Online (Sandbox Code Playgroud)

app.js

var app = angular.module('HAY', ['ngRoute']);

app.config(function($routeProvider) {
  $routeProvider
    .when('/', {
      redirectTo: '/pages/alerts'
    })
    .when('/pages/:pageName', {
        templateUrl: function(params) {
            return 'views/pages/' + params.pageName + '.html';
        },
        controller: MainController,
        resolve: MainController.loadData
    })
    .otherwise({
        redirectTo: '/pages/alerts'
    });
});
Run Code Online (Sandbox Code Playgroud)

我尝试更改名称,以防它是一个冲突的系统保留关键字,但没有运气.出于某种原因, …

controller angularjs angularjs-routing route-provider

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