小编Bes*_*esi的帖子

友情ID slug不包含id

我想要这样的网址:

http://domain.com/products/454-table-lamp
Run Code Online (Sandbox Code Playgroud)

所以我像这样使用friendly_id:

extend FriendlyId

friendly_id :slug_candidates, use: :history

def slug_candidates
  [
      [:id, :title]
  ]
end
Run Code Online (Sandbox Code Playgroud)

现在,由于友好id在保存对象之前生成了slug,我最终得到了一个这样的url(请注意URL中缺少的id):

http://domain.com/products/table-lamp
Run Code Online (Sandbox Code Playgroud)

现在虽然这并不是那么糟糕.只要我保存另一个名为"Table Lamp"的产品,我就会得到一个这样的URL:

http://domain.com/products/table-lamp-ebaf4bf5-a6fb-4824-9a07-bdda34f56973
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,我怎样才能确定,友好的ID也会创建包含ID的slug.

ruby-on-rails friendly-id

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

Cocoa登录表阻止用户退出应用程序

在我的OSX应用程序中,我使用工作表允许用户登录.如果用户首次启动应用程序,则会显示工作表,用户必须输入其信息.

现在只要工作表打开,用户就无法退出应用程序(除非他强行退出).

由于登录至关重要,我不想提供取消按钮.

cocoa view

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

如何结合`int`和`NSInteger`的优点

一个看似简单的问题:我可以使用某种Number对象,它可以是nil但我可以像原始int一样分配:

像这样:

NSNumber *n = nil; 
n = 3; 

if(n == nil){ 
    // some actions... 
} else if (n == 1){ 
    // some actions... 
} else { 
    // some actions... 
}
Run Code Online (Sandbox Code Playgroud)

感谢您的输入

iphone objective-c nsnumber ios

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

Ruby计算字符串中找到的关键字的数量

我有一个包含关键字的数组,我有一个字符串,可能包含这些关键字.我现在需要知道给定字符串中有多少个关键字:

keywords = [ 'text' ,'keywords' ,'contains' ,'blue', '42']
text = 'This text is not long but it contains 3 keywords'
Run Code Online (Sandbox Code Playgroud)

我现在如何用ruby命令找出我的数组中有多少字符串在文本中(本例中为三个)?我当然可以为每个循环使用a,但我几乎可以肯定有一种更简洁的方法来实现这一点.

谢谢你的帮助

更新:优选地,解决方案不应该依赖于空间.所以空格可以用任意字符代替.

更新2:该命令应查找唯一的事件.

ruby

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

Objective-C:为什么要检查!= nil

我经常看到这样的代码:

// Approach 1
if(data != nil){
    // Do this and that
}
Run Code Online (Sandbox Code Playgroud)

当一个人可以简单地做这样的检查:

// Approach 2
if(data){
    // Do this and that
}
Run Code Online (Sandbox Code Playgroud)

对我来说,第二种方法似乎更好,因为它更短更容易阅读.

那么为什么要使用第一种方法呢?

objective-c

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

找出我的异步调用何时完成

我在iOS设备上遍历一系列相册.在迭代完这个组后,我想简单地打印出找到的专辑数量.

在我的代码中,NSLog只有在加载了所有相册时才执行该语句,我需要做些什么.

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];      
NSMutableArray *tempArray = [[NSMutableArray alloc] init];

void (^groupBlock)(ALAssetsGroup *, BOOL *) = ^(ALAssetsGroup *group, BOOL *stop){
    if (group == nil){return;}
    [tempArray addObject:group];
 };

void (^failureBlock)(NSError *) = ^(NSError *error) {
    NSLog(@"A problem occured %@", [error description]);                                     
};  

[library enumerateGroupsWithTypes:ALAssetsGroupAll
                       usingBlock:groupBlock 
                     failureBlock:failureBlock];   

NSLog(@"%i albums were loaded", tempArray.count);
Run Code Online (Sandbox Code Playgroud)

xcode asynchronous ios alassetslibrary

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

如何使异步调用同步

我重写了一个回调方法,以处理HTTP请求的响应.

-(NSObject<HTTPResponse> *)httpResponseForMethod:(NSString *)method URI:(NSString *)path{
    NSObject <HTTPResponse> *response;
    // Here I should load the data
}
Run Code Online (Sandbox Code Playgroud)

但是,在我的请求中,我必须加载一些只能异步工作的数据:

- (void)assetForURL:(NSURL *)assetURL resultBlock:(ALAssetsLibraryAssetForURLResultBlock)resultBlock failureBlock:(ALAssetsLibraryAccessFailureBlock)failureBlock;
Run Code Online (Sandbox Code Playgroud)

由于我处于同步方法中,因此在获取数据之前我不能"离开"方法.此外,我无法预加载所需的数据,因为我在请求之前不知道需要哪个资产.

这对我来说似乎是一个非常棘手的设计问题,我看不出如何在没有一些重大黑客的情况下解决这个问题的解决方案.

architecture iphone ios objective-c-blocks

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

Xcode 5.1中的IBOutletCollection

我想IBOutletCollection在我的应用程序中创建一个控件列表.所以我在我的Document.h定义了以下出口:

@property (strong) IBOutletCollection(NSControl) NSArray *myControls;
Run Code Online (Sandbox Code Playgroud)

在早期版本中,Outlet Collections确实显示在Xcode中的相应Inspector中,但在Xcode 5.1中似乎并非如此.

出口集合之前

在此输入图像描述

在我的情况下,检查器中没有可见的出口集合:

在此输入图像描述

如何重新启用此行为?

macos xcode cocoa objective-c iboutletcollection

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

将Globalize添加到我的Rails项目时涉及哪些步骤

我有一个需要多语言的rails项目.我在为rails项目启用globalize时遇到了一些问题.

我想知道是否有一个完整的清单/配方,可以为rails应用程序启用国际化.

请注意,我使用ActiveAdmin也需要参与其中.

ruby ruby-on-rails activeadmin ruby-on-rails-4 globalize

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

将 Laravel 部署到 Heroku 时,参数“client_encoding”的值无效:“utf8mb4”(SQL:从“tablename”中选择 *)

我正在尝试将我的 laravel 应用程序部署到 heroku 但它返回一个错误:

SQLSTATE[22023]: Invalid parameter value: 7 ERROR: invalid value for parameter "client_encoding": "utf8mb4" (SQL: select * from "tablename"). 
Run Code Online (Sandbox Code Playgroud)

我将表名排序规则和列从 更改为 ,utf8mb4_unicode_ciutf8unicode_ci什么也没发生。请帮我。我尝试了所有可能的解决方案,但没有任何效果。

heroku laravel laravel-5

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