我注意到在Xcode中我可以设置权利和代码签名设置:
这两者有什么区别?我知道,对于标题路径,一个人倾向于覆盖另一个(当然没有警告......).
鉴于一个模型:
class Person
validates_lenght_of :name, :maximum => 50
end
Run Code Online (Sandbox Code Playgroud)
我有一些显示倒计时的视图代码并强制执行此最大值.但是我将数字50硬编码到该视图代码中.有没有办法从模型中提取这个数字?
就像是:
Person.maximum_length_of_name
Run Code Online (Sandbox Code Playgroud)
我试过这个:
Person.validators_on(:name)
=> [#<ActiveRecord::Validations::UniquenessValidator:0x000001067a9840 @attributes=[:name], @options={:case_sensitive=>true}, @klass=Trigger(id: integer, name: string, created_at: datetime, updated_at: datetime, user_id: integer, slug: string, last_update_by: integer)>, #<ActiveModel::Validations::PresenceValidator:0x000001067a6c30 @attributes=[:name], @options={}>, #<ActiveModel::Validations::LengthValidator:0x000001067a3f08 @attributes=[:name], @options={:tokenizer=>#<Proc:0x00000101343f08@/Users/sjors/.rvm/gems/ruby-1.9.2-p0/gems/activemodel-3.0.6/lib/active_model/validations/length.rb:9 (lambda)>, :maximum=>50}>]
Run Code Online (Sandbox Code Playgroud)
信息在那里,但我不知道如何提取它:
我的用户在Heroku上偶尔会看到请求超时.不幸的是,我无法一致地重现它们,这使得它们很难调试.有很多机会来提高性能 - 例如通过减少每个请求的大量数据库查询以及添加更多缓存 - 但是没有分析这是一个黑暗的镜头.
根据我们的New Relic分析,许多请求在服务器上花费1到5秒.我知道这太慢了,但它远不及超时所需的30秒.
New Relic上的错误选项卡向我显示了几个不同的数据库查询,其中发生了超时,但这些查询并不是特别慢,并且每次崩溃都可能是不同的查询.同样对于相同的URL,它有时也会显示数据库查询.
我怎样才能知道这些特殊情况下发生了什么?例如,如何在超时发生时查看在数据库中花费的时间,而不是在没有错误时在数据库中花费的时间?
我的一个假设是数据库在某些情况下会被锁定; 也许是阅读和写作的结合.
截至昨天,我无法更新我的捆绑包.它被困在"获取http://rubygems.org/的源索引".我知道这通常需要一段时间,但我已经等了几个小时,并在最后一天尝试了几次.我有20 Mbit的互联网连接.
我在Macbook上使用gem 1.8.5,Bundler版本1.0.15,rvm 0.1.46,ruby-1.9.2-p0 [x86_64]和Rails 3.0.8.Gemfile:https://gist.github.com/1028832
我试图运行Bundle Update的原因是因为捆绑设置直到最近才设置为0.8.7(不确定原因),但是rake开始要求我升级到0.9.2.所以我改变了Gemfile.Bundle Install告诉我:
bundle install
Fetching source index for http://rubygems.org/
You have requested:
rake >= 0.9.2
The bundle currently has rake locked at 0.8.7.
Try running `bundle update rake`
Run Code Online (Sandbox Code Playgroud)
我的.bundle/config包含:
---
BUNDLE_DISABLE_SHARED_GEMS: "1"
BUNDLE_WITHOUT: production
Run Code Online (Sandbox Code Playgroud)
我不是代理人的背后.
我甚至尝试删除Gemfile.lock,在rvm中重新安装ruby版本并删除所有gem:
rm Gemfile.lock
rvm uninstall 1.9.2
rvm install 1.9.2
for x in `gem list --no-versions`;do gem uninstall $x -aIx;done
gem install bundle
bundle install
Run Code Online (Sandbox Code Playgroud) 我在Core Data中有一个实体,它有一个需要唯一的属性.没有办法在可视化界面中设置它.我假设我需要创建一个继承自NSManagedObject的自定义类,然后编写自己的验证方法.
我通过在可视化编辑器中选择实体并选择文件 - >新建 - >新建文件 - > NSManagedObject子类,成功创建了自定义类.我用它来添加创建时间戳,所以我知道它有效.
但现在呢?我需要哪些方法?
该NSManagedObject参考指南告诉我"实现形式验证的方法:错误:"但没有提供一个例子.
一个完整的例子很棒,但是非常感谢任何帮助.
我正在尝试使用auth_logic构建一个"只需点击你的名字登录"系统.我的用户模型有一个电子邮件和名称字段.要登录,我只需:
UserSession.create(@user, true)
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不会导致会话被创建.使用调试器我发现此消息:
#<UserSession: {:unauthorized_record=>"<protected>"}>
Run Code Online (Sandbox Code Playgroud)
我的用户模型只有一行:
acts_as_authentic
Run Code Online (Sandbox Code Playgroud)
用户会话行有这个,我在某处找到了.我不知道它做了什么,我尝试过和没有:
class UserSession < Authlogic::Session::Base
def to_key
new_record? ? nil : [ self.send(self.class.primary_key) ]
end
end
Run Code Online (Sandbox Code Playgroud)
数据库(我也不确定是否需要user_sessions表):
create_table "sessions", :force => true do |t|
t.string "session_id", :null => false
t.text "data"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "sessions", ["session_id"], :name => "index_sessions_on_session_id"
add_index "sessions", ["updated_at"], :name => "index_sessions_on_updated_at"
create_table "user_sessions", :force => true do |t|
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "users", :force => true do |t|
t.datetime "created_at"
t.datetime "updated_at"
t.string …Run Code Online (Sandbox Code Playgroud) 假设我们有这样的简单示例:
void foo(std::unique_ptr<int> ptr)
{
std::cout << *ptr.get() << std::endl;
}
int main()
{
std::unique_ptr<int> uobj = std::make_unique<int>(4);
foo(uobj ); // line-(1) Problem ,but Alternative -> foo(std::move(uobj ))
std::unique_ptr<int> uobjAlt = uobj; // line-(2) Problem ,but Alternative -> std::unique_ptr<int> uobjAlt = std::move(uobj);
return EXIT_SUCCESS;
}
Run Code Online (Sandbox Code Playgroud)
我们简单地知道std::unique_ptr与单一所有者拥有的资源概念绑定,并在多个所有者之间移动资源,而 shared_ptr 则具有相反的方面。如上面所示的示例,当您查看line-(1)和line-(2)时 ,您会注意到违反了一些标准规则,因为 std::unique_ptr 没有定义复制构造函数和复制可赋值运算符,但在为了避免编译错误,我们必须使用std::move函数。
为什么现代 C++ 编译器无法自动生成在line-(1)和line-(2)中的唯一指针之间移动资源的指令?因为我们知道特意为此设计了独特的指针。为什么我们应该显式地使用 std::move 来指示机器移动资源的所有权?
std::unique_ptr 除了类模板之外什么都没有。我们知道,但是在第 1 行和第 -2 行中解决的情况存在问题,而编译器抱怨不允许复制 unique_pointers(已删除的函数)。为什么我们会出现此类错误,为什么 C++ 标准和编译器供应商不能重写这个概念吗? …
validation ×2
activerecord ×1
authlogic ×1
bundler ×1
c++ ×1
c++11 ×1
c++14 ×1
code-signing ×1
core-data ×1
heroku ×1
ios ×1
iphone ×1
newrelic ×1
performance ×1
rubygems ×1
unique-ptr ×1
xcode ×1