我只是想要消息通知/错误如果消息是/没有保存,没有任何重定向,我怎么能没有重定向:
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) 我想要媒体控制,如播放/暂停我正在我的应用程序中播放的流媒体音频.我正在使用MediaPlayer来播放和播放音频.
有人可以提供有关如何将MediaController与MediaPlayer一起使用的代码段吗?
谢谢克里斯
我正在努力让我的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) 所以这就是我想要完成的事情:
'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,我理解.这样做会有什么不同的方式?谢谢!
我有两个控制器文件homecontroller和backendcontroller.创建全局函数并从两个文件访问它的最佳方法是什么?
我在这里发现Arian Acosta的答案很有帮助,但我想知道是否有最简单的方法.我将不胜感激任何建议.
我正在为我的控制器编写一个rspec测试,但我找不到解决问题的方法.对于其中一个边缘案例测试,我需要验证一个实例变量的值.如何在不必定义访问者的情况下访问它?通常默认情况下:
controller.variable.should == '3.15'
Run Code Online (Sandbox Code Playgroud)
不起作用.
定义
attr_reader:变量
只是让测试通过将是愚蠢的,我敢肯定有一个更智能的方式.
我的控制器中有以下代码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.我没有更改项目的任何默认设置.
我究竟做错了什么?
谢谢
当用户被授权时,我试图将用户定向到我的主页面.我在login_check控制器中进行用户检查并添加$this->load->view('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) 我正在努力学习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方法.我不明白为什么测试代码看不到我的方法.
任何帮助表示赞赏.
我试图在我的应用程序加载之前执行异步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 ×10
angularjs ×2
rspec ×2
android ×1
asp.net-mvc ×1
codeigniter ×1
devise ×1
global ×1
laravel ×1
media-player ×1
methods ×1
redirect ×1
routing ×1
ruby ×1
testing ×1
unit-testing ×1