小编Dav*_*Nix的帖子

如何使Devise可以锁定失败次数

使用Devise 2.1.2和Rails 3.2.6

我正在做这个问答,以防万一其他人遇到这个问题,因为我发现它很少和分散的文档.

如果您尝试设置Devise为可锁定,则可能会发生此错误.

undefined local variable or method `locked_at' for [someClass]
Run Code Online (Sandbox Code Playgroud)

这意味着您的模型没有适当的属性.

先决条件:在config/initializers/devise.rb中设置以下内容

# ==> Configuration for :lockable
# Defines which strategy will be used to lock an account.
# :failed_attempts = Locks an account after a number of failed attempts to sign in.
# :none            = No lock strategy. You should handle locking by yourself.
config.lock_strategy = :failed_attempts

# Defines which key will be used when locking and unlocking an account
config.unlock_keys = [ :email …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails devise ruby-on-rails-3

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

Simple_form:删除带有标签的内联复选框的外部标签

使用Simple_form 2.0.2

使用HAML的简单表单代码:

= f.input :remember_me, as: :boolean, inline_label: 'Remember me'
Run Code Online (Sandbox Code Playgroud)

但它呈现了这个:

<div class="control-group boolean optional">
  <label class="boolean optional control-label" for="admin_remember_me">Remember me</label>
  <div class="controls">
    <input name="admin[remember_me]" type="hidden" value="0" />
    <label class="checkbox"><input class="boolean optional" id="admin_remember_me" name="admin[remember_me]" type="checkbox" value="1" />Remember me</label>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

如何删除渲染的第一个标签,以便我只有内联标签?

ruby ruby-on-rails-3 simple-form

33
推荐指数
4
解决办法
3万
查看次数

绘制动态UITableView行高的最佳实践

可能是重复但我在SO上找不到具体问题,所以在这里.

我很想知道动态改变所有行的高度,通常是因为你不知道用于标签的NSString的长度.

我知道您必须使用此委托方法来更改行高:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)

问题是这个委托方法在创建单元格之前调用(即之前调用cellForRowAtIndexPath).

所以,我想到的是创建一个模拟单元格viewWillAppear和一个方法,将单元格高度添加到映射到表视图的数据源(在我的情况下也是一个数组)的数组中.

viewWillAppear 实现这一个获得高度的重要方法:

[NSString sizeWithFont: constrainedToSize: lineBreakMode:]

然后在heightForRowAtIndexPath我可以像这样返回单元格高度:

//cellHeights is an ivar populated in viewWillAppear
return [[cellHeights objectAtIndex:indexPath.row] floatValue];
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好的方法来动态改变行高?

我意识到这会降低大量行的性能(我相信大于1000).但就我而言,我的行不会接近那个数字.因此,性能损失可以忽略不计.

提前致谢!

iphone objective-c uitableview ios

10
推荐指数
1
解决办法
6489
查看次数

使用子类控制器设计"转换缺失"错误

我已经分组了Devise::RegistrationsController.在我的例子中,子类控制器是AdminRegistrationsController.

但是,例如,当我注册新的管理员时,会flash显示以下消息:

translation missing: en.devise.admin_registrations.admin.signed_up

我已经验证了存在的条目config/locales/devise.en.yml.这是片段:

en:
  devise:
    registrations:
      signed_up: 'Welcome! You have signed up successfully.'
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

rubygems ruby-on-rails ruby-on-rails-3

10
推荐指数
1
解决办法
8874
查看次数

阴影不会出现在使用CALayer的UIView上

我有一个UIView从笔尖加载的子类,我无法在它周围画一个阴影.我试图在整个视图周围出现一个阴影已经有一段时间了.我选择将它放在它自己的子层中,以便以后简化动画.这是代码:

-(void)awakeFromNib 
{
    self.clipsToBounds = NO;

    // set up the shadow layer
    CALayer *shadow = [CALayer layer];
    shadow.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, self.bounds.size.width, self.bounds.size.height);
    shadow.shadowColor = [UIColor blueColor].CGColor;
    shadow.shadowRadius = 15.0;
    shadow.opacity = 1.0;
    [self.layer addSublayer:shadow];
    // I set this property so I have access to it later to more easily animate it.
    self.shadowLayer = shadow;
}
Run Code Online (Sandbox Code Playgroud)

当我NSLogshadowLayer属性,坐标和框架是正确的.它与它支持的视图相匹配.

我还设置了边框颜色和角半径self.layer,它显示正确.如果我把阴影放在self.layer它上面,但它包含了我父母的所有子视图UIView.

任何帮助是极大的赞赏.

iphone cocoa-touch core-animation calayer ios

6
推荐指数
1
解决办法
5294
查看次数

Heroku模板错误 - 在错误的目录中查找部分

所以我正在学习Rails并完成Michael Hartl的教程.

当我部署到Heroku时,我得到了臭名昭着的"我们很抱歉,但出了点问题."

该应用程序在本地开发服务器上运行正常.

Heroku日志说:

2012-06-27T15:31:47+00:00 app[web.1]: Completed 500 Internal Server Error in 112ms
2012-06-27T15:31:47+00:00 app[web.1]: 
2012-06-27T15:31:47+00:00 app[web.1]:   * "/app/app/views"
2012-06-27T15:31:47+00:00 app[web.1]: ActionView::Template::Error (Missing partial layouts/header with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder]}. Searched in:
2012-06-27T15:31:47+00:00 app[web.1]: ):
2012-06-27T15:31:47+00:00 app[web.1]:     11: </head>
2012-06-27T15:31:47+00:00 app[web.1]:     12: <body>
2012-06-27T15:31:47+00:00 app[web.1]:     13: 
2012-06-27T15:31:47+00:00 app[web.1]:     14: <%= render 'layouts/header' %>
2012-06-27T15:31:47+00:00 app[web.1]:     15: 
2012-06-27T15:31:47+00:00 app[web.1]:     16:     <div class="container">
2012-06-27T15:31:47+00:00 app[web.1]:   app/views/layouts/application.html.erb:14:in `_app_views_layouts_application_html_erb__112987114114249875_31386580'
2012-06-27T15:31:47+00:00 app[web.1]:     17:       <% flash.each do |key, value| %>
Run Code Online (Sandbox Code Playgroud)

如果我正确读取它,它正在查找/app/app/views标题部分.这是错的 - 应该是 …

ruby-on-rails heroku ruby-on-rails-3

5
推荐指数
1
解决办法
876
查看次数

麻烦使用自定义模态表与Cocoa

我的目标:当应用程序通过冗长的循环时,显示带有确定的NSProgressIndicator的自定义工作表.我希望工作表是应用程序模式,而不是文档模式.用户无法关闭模态表.他们必须等待应用程序完成循环处理.

问题:我无法将自定义工作表附加到窗口.它显示为缺少窗口标题栏的单独窗口(如表单所示).此外,当循环结束时,纸张不会释放(不会关闭).

我有两个单独的nib文件用于工作表和主应用程序窗口,还有两个控制器类用于每个窗口.

以下是相关信息:自定义工作表的控制器实现:

@implementation ProgressSheetController //subclass of NSPanel

-(void)showProgressSheet:(NSWindow *)window
{
    //progressPanel is an IBOutlet to the NSPanel
    if(!progressPanel)
        [NSBundle loadNibNamed:@"ProgressPanel" owner:self];

    [NSApp beginSheet: progressPanel
       modalForWindow: window
        modalDelegate: nil
       didEndSelector: nil
          contextInfo: nil];

    //modalSession is an instance variable
    modalSession = [NSApp beginModalSessionForWindow:progressPanel];

    [NSApp runModalSession:modalSession];
}

-(void)removeProgressSheet
{
    [NSApp endModalSession:modalSession];
    [NSApp endSheet:progressPanel];
    [progressPanel orderOut:nil];
}

//some other methods 
@end
Run Code Online (Sandbox Code Playgroud)

主应用程序窗口的实现.testFiles方法是一个连接到按钮的IBAction.

@implementation MainWindowViewController //subclass of NSObject

-(IBAction)testFiles:(id)sender;
{
    //filesToTest is a mutable array instance variable
    int count = [filesToTest count];

    float …
Run Code Online (Sandbox Code Playgroud)

macos cocoa objective-c cocoa-sheet

4
推荐指数
1
解决办法
3873
查看次数

无法解密在iPhone上通过OpenSSL编码的数据

对我上一个问题的后续跟进: 如何从OpenSSL加密数据中获取初始化向量(iv)

我正在使用OpenSSL命令行实用程序来加密字符串,然后尝试<CommonCrypto/CommonCryptor.h>用来解密iPhone上的字符串.使用Dropbox SDK,将带有加密字符串的xml文件加载到iPhone上,我的应用程序尝试解析和解密此文件中的字符串.

这是openssl命令的一个例子:

printf %s "Hello" | openssl enc -aes-128-cbc -K 00ff349830193845af43984758690213 -iv 0 -base64
Run Code Online (Sandbox Code Playgroud)

上面的base 64字符串放在一个XML文件中,然后由app解析.

我正在使用Matt Gallagher的NSData来解码base64文本.我假设它正常工作; 我还没有找到一个测试它的好方法.(来源:http: //cocoawithlove.com/2009/06/base64-encoding-options-on-mac-and.html).

这是解码加密字符串的方法.
在这种情况下,关键是NSString等于@"00ff349830193845af43984758690213".

+ (NSString *)string:(NSString *)encryptedString withAES128Key:(NSString *)key {

// decode base64, from Matt Gallagher's NSData category
NSData *b64DecodedData = [NSData dataFromBase64String:encryptedString];

NSData *keyData = [key dataUsingEncoding:NSUTF8StringEncoding];

// fyi, I plan to replace this later with a random iv
NSData *ivData = [@"00000000000000000000000000000000" dataUsingEncoding:NSUTF8StringEncoding];

// decrypt the string …
Run Code Online (Sandbox Code Playgroud)

iphone encryption openssl cryptography ios

4
推荐指数
1
解决办法
6213
查看次数

tabBarController:shouldSelectViewController:设置委托时不调用

我想我已经完成了我的作业.

我希望我的app委托成为我的代表UITabBarController.

使用IB,我已将UITabBarController代理连接到我的应用程序代表.

App Delegate Header文件是:

@interface MyAppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> {
Run Code Online (Sandbox Code Playgroud)

我试图实现的委托方法是:

-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
    NSLog(@"shouldSelectViewController called.");
    // do some stuff with viewController
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

我的应用代表有一个出口到UITabBarControllerIB的连接.当我这样做:

NSLog(@"tab bar controller delegate is %@", self.tabBarController.delegate);
Run Code Online (Sandbox Code Playgroud)

我得到了一个很好的结果,比如tab bar controller delegate is <MyAppDelegate: 0x6e86a30>.

我错过了什么?

iphone cocoa-touch delegates uitabbarcontroller ios

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

Ruby case语句未按预期执行

Fyi,使用Rails.

特定 user = User.find(1)

这个case语句nil在返回结果时返回self.do_something_with_user.

def case_method
    case self.class
      when User
        self.do_something_with_user # assume does not return nil
      when SomeOtherClass
        self.do_something_else
      else
        nil
    end
end

user.case_method # => nil
Run Code Online (Sandbox Code Playgroud)

我错过了什么?使用pry,self.class == User返回true.

ruby ruby-on-rails

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

如何从OpenSSL加密数据中获取初始化向量(iv)

免责声明:密码学新手.

我有一个使用OpenSSL加密数据的外部进程,现在使用salt.

iPhone应用程序从服务器获取该数据,将其下载到应用程序的文档目录,并需要对其进行解密.iPhone OS不包含OpenSSL库.你可以自己构建它,但这很困难而且很棘手.由于Stackoverflow的帮助,我发现的"最简单"的解决方案是使用CommonCrypto/CommonCryptor.h它是安全框架的一部分.

但是解密数据的C函数需要iv才能正确解密.

有没有办法从加密数据中导出iv(对我而言,似乎它会否定额外的安全性)?或者我需要首先以某种方式指定iv并让iPhone应用程序知道它是什么?或者,只是不要使用盐?

Edit1:为了澄清,我正在使用OpenSSL来加密数据文件中的文本.使用OpenSSL的脚本加密文本,上传到Dropbox,然后应用程序从Dropbox下载文件,解析它,并尝试解密文本.

Edit2:是的,我正在使用带有该-pass选项的OpenSSL命令行实用程序.

iphone encryption openssl cryptography ios

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

即使我设置了内容大小,UIScrollView也不会滚动

我有一个UIView是UIScrollView的子视图.

我这样做是为了设置内容大小viewDidLoad(我在这个网站上找到的有用片段):

CGFloat scrollViewHeight = 0.0f;
for (UIView* view in self.scrollView.subviews)
{
    scrollViewHeight += view.frame.size.height;
}

[self.scrollView setContentSize:(CGSizeMake(320, scrollViewHeight))];
Run Code Online (Sandbox Code Playgroud)

使用NSLog我确定内容大小高度大于滚动视图的高度.但是,它仍然不会滚动.(我只对垂直滚动感兴趣.)

在IB中启用了滚动,所以我错过了什么?

iphone cocoa-touch uiscrollview ios

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

使用capybara调试rspec集成测试的最佳方法是什么?

我有一个rspec测试失败,但在开发中,当我自己执行操作时,页面呈现正确.

这是片段:

describe "sign up process" do

let (:admin1) { FactoryGirl.create(:admin) }

describe "with valid information"

  before do 
    visit new_admin_registration_path
    fill_in "Email", with: admin1.email
    fill_in "Password", with: admin1.password
    fill_in "Password confirmation", with: admin1.password_confirmation
    click_button "Sign up"
  end

  it { should have_selector('div.alert') }
end
Run Code Online (Sandbox Code Playgroud)

根本没有找到那个选择器,但我确认它在使用开发环境查看源时存在.

我希望能够做的是检查正在渲染的页面以查看我缺少的内容.有没有办法做到这一点?

rspec-rails ruby-on-rails-3

0
推荐指数
1
解决办法
1981
查看次数