我使用以下方法为对象添加了验证:
validate :field, presence: true
Run Code Online (Sandbox Code Playgroud)
我发现他们没有给出错误信息.我将它们更改为validates
并收到错误消息.这张票是相关的.
我尝试添加自定义验证validates
并收到错误:
You need to supply at least one validation
Run Code Online (Sandbox Code Playgroud)
我把它改成了validate
,一切都按预期进行了.
我的理解是使用validates
普通验证和validate
自定义验证.是对的吗?还有其他我应该知道的部分吗?有没有办法让第一个问题大声失败而不只是验证一切?
背景
当我尝试使用数组解构赋值时,我能够预先声明我的变量:
let a, b, c;
let arr = [1, 2, 3, 4, 5];
[a, b, c] = arr;
console.log(a) // logs 1
console.log(b) // logs 2
console.log(c) // logs 3
Run Code Online (Sandbox Code Playgroud)
这通过了Babel编译器就好了.
但是,当我尝试对对象做同样的事情时,我收到了一个错误
let a, b, c
let obj = {cat: 'meow', dog: 'woof', mouse: 'squeak'};
{cat: a, dog: b, mouse: c} = obj;
console.log(a) // I want this to log 'meow'
console.log(b) // I want this to log 'woof'
console.log(c) // I want this to log 'squeak'
Run Code Online (Sandbox Code Playgroud)
题
这是ES6还是Babel的怪癖/问题?如果它是ES6的故意,为什么与数组的处理方式有所不同? …
我对Angular很新,而现在我只是试图让我的所有路线都按照我的意愿设置和工作.
设置:
当用户导航到某些页面时(/settings
对于此示例),应用程序应检查是否有用户已登录.如果有照常继续.否则,用户应该转到登录页面(/login
).
我想要的:
用户成功登录后,应该转到他们最初尝试访问的页面(/settings
)
我的问题: 是否有"Angular方式"记住用户试图去的地方?
相关代码:
app.js
.when('/settings', {
templateUrl: '/views/auth/settings.html',
controller: 'SettingsCtrl',
resolve: {
currentUser: function($q, $location, Auth) {
var deferred = $q.defer();
var noUser = function() {
//remember where the user was trying to go
$location.path("/login")
};
Auth.checkLogin(function() {
if (Auth.currentUser()) {
deferred.resolve(Auth.currentUser());
} else {
deferred.reject(noUser());
}
});
return deferred.promise;
}
}
})
Run Code Online (Sandbox Code Playgroud)
login.js
$scope.submit = function() {
if(!$scope.logInForm.$invalid) {
Auth.login($scope.login, $scope.password, $scope.remember_me)
//go to the page the user …
Run Code Online (Sandbox Code Playgroud) redirect login angularjs angularjs-routing angularjs-authentication
背景:
我们已经在我们的系统中生成了需要在最终状态下提交的文件(例如,我们不能依赖源(未生成的)文件并在运行中生成生成的文件).由于我们需要生成的文件,因此无法忽略这些文件.
问题:
这些文件Your local changes to the following files would be overwritten by merge
在checkout和pull命令中从git 触发了很多错误.
当我拉或结账时,我从不关心我的文件是什么,我只关心新文件.(显然我非常关心生成文件的源文件.我很高兴源文件上的合并警告,它保存在不同的目录中.)
但是,当我提交时,我希望我的版本"赢"并生成我生成的文件.
可能的方法:
现在我只是git checkout -- generated-files/
在拉或结账之前运行以重置我生成的文件并跳过任何合并错误.它有效,但我经常忘记这样做,如果可能的话我想自动化它.
我看了一个预检验和预拉钩,但git不提供它们:(
问题:
git checkout -- generated-files/
拉或结账前运行?我在C++中有很多代码,最初是在PC上构建的.我试图在Mac上使用Objective-C.为此,我创建了一个Objective-C框架来存放C++代码并添加了一个瘦包装器.但是我在C++代码中遇到了typedef问题.
当我在PC上使用C++时,我使用了BOOL
WinDef.h中定义的变量.因此,当我将所有内容移到Mac上时,我添加了typedef int BOOL;
以确保BOOL
变量仍然按预期编译.
但是当我尝试编译时,我得到一个错误:" Conflicting declaration 'typedef int BOOL'
".我假设这是因为BOOL
Objective-C中的关键字,因此已经定义了.我也不能只使用Objective-C,BOOL
因为它是一个unsigned char而不是int.
当我在寻找可能的解决方案时,我找到了一个提到未定义BOOL的解决方案,但是我找不到怎么做(我也不知道它是否真的有效). 另一个建议将 C++文件中的BOOL重命名为非关键字.这个建议对我来说不是一个选择,因为其他项目依赖于C++代码.理想情况下,我所做的任何更改都应保留在一个文件中,或者至少不应对Windows计算机上的代码产生负面影响.
如何为我的C++文件取消定义BOOL的Objective-C定义并使用我添加的C++定义?有没有更好的方法来处理这个问题?
如果它有助于我使用:Xcode 3.2.5,64位和Mac OS X 10.6.6
谢谢你的指导!
背景
我有一个正则表达式,我想跨多行运行。我的理解是 OSX 的 grep 无法处理这个问题(如果我错了,请纠正我!)。因此,经过一番谷歌搜索后,我发现 PCRE 可以满足我的要求。brew install pcre
我尝试按照一些网站的建议安装它。似乎已经奏效了。如果我brew install pcre
再次运行,我会收到此错误Warning: pcre-8.40 already installed
,并且我有一个/usr/local/Cellar/pcre/8.40/
目录。
问题
通过自制程序安装 PCRE 后,当我pcre: command not found
尝试使用该pcre
命令时出现此错误。
问题
我需要执行第二步吗brew install pcre
?我没有找到任何为此列出的内容,但也许我错过了。我还找到了这些手动安装 PCRE 的说明。与自制程序相比,这样做有缺点吗?
我正在尝试学习块和触发器,我觉得这应该是可行的,但到目前为止我还没有成功.
我想要的是什么:
def main_action(generic_variable, block)
generic_variable += 1 # I do more interesting stuff than this in my version
yield(generic_variable)
end
main_action(3, {|num| num + 5 })
Run Code Online (Sandbox Code Playgroud)
或类似的东西.
我找到的最接近的是http://mudge.name/2011/01/26/passing-blocks-in-ruby-without-block.html,似乎需要创建一个传递方法来发送块:
class Monkey
# Monkey.tell_ape { "ook!" }
# ape: ook!
# => nil
def self.tell_ape(&block)
tell("ape", &block)
end
def self.tell(name, &block)
puts "#{name}: #{block.call}"
end
end
Run Code Online (Sandbox Code Playgroud)
如果我使用在我的代码中设置的相同传递方法,我可以使它工作,但它似乎是不必要的代码.我试着Monkey.tell("ape", { "ook!" })
直接打电话,但得到了syntax error, unexpected '}', expecting tASSOC
是否有可能在一次调用中向一个函数发送一个变量和一个块(或proc,我不挑剔)?另外,如果你有时间,上面发生了什么?为什么不起作用?
问题:如何获得名称中包含多行的所有名为“ interesting-file.txt”的文件?
背景调查:
find . -name "interesting-file.txt"
wc -l
来获取他们的行号。awk '$1 > 1'
多行查找那些文件。但是我在将所有内容组合在一起时遇到了问题。
我尝试了几种
find . -name "interesting-file.txt" | awk '{print wc -l $0}'
Run Code Online (Sandbox Code Playgroud)
没有成功。除了寻找相关命令之外,我还没有开始“大于一个”。
我在OSX上,使用标准终端。
谢谢你的帮助!
angularjs ×1
babeljs ×1
bash ×1
block ×1
c++ ×1
command-line ×1
declaration ×1
ecmascript-6 ×1
git ×1
githooks ×1
gulp ×1
homebrew ×1
javascript ×1
linux ×1
login ×1
objective-c ×1
pcre ×1
proc ×1
redirect ×1
ruby ×1
typedef ×1
validation ×1
variables ×1