我想要这样的网址:
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.
在我的OSX应用程序中,我使用工作表允许用户登录.如果用户首次启动应用程序,则会显示工作表,用户必须输入其信息.
现在只要工作表打开,用户就无法退出应用程序(除非他强行退出).
由于登录至关重要,我不想提供取消按钮.
一个看似简单的问题:我可以使用某种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)
感谢您的输入
我有一个包含关键字的数组,我有一个字符串,可能包含这些关键字.我现在需要知道给定字符串中有多少个关键字:
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:该命令应查找唯一的事件.
我经常看到这样的代码:
// 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)
对我来说,第二种方法似乎更好,因为它更短更容易阅读.
那么为什么要使用第一种方法呢?
我在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) 我重写了一个回调方法,以处理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)
由于我处于同步方法中,因此在获取数据之前我不能"离开"方法.此外,我无法预加载所需的数据,因为我在请求之前不知道需要哪个资产.
这对我来说似乎是一个非常棘手的设计问题,我看不出如何在没有一些重大黑客的情况下解决这个问题的解决方案.
我想IBOutletCollection在我的应用程序中创建一个控件列表.所以我在我的Document.h定义了以下出口:
@property (strong) IBOutletCollection(NSControl) NSArray *myControls;
Run Code Online (Sandbox Code Playgroud)
在早期版本中,Outlet Collections确实显示在Xcode中的相应Inspector中,但在Xcode 5.1中似乎并非如此.


如何重新启用此行为?
我有一个需要多语言的rails项目.我在为rails项目启用globalize时遇到了一些问题.
我想知道是否有一个完整的清单/配方,可以为rails应用程序启用国际化.
请注意,我使用ActiveAdmin也需要参与其中.
我正在尝试将我的 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_ci但utf8unicode_ci什么也没发生。请帮我。我尝试了所有可能的解决方案,但没有任何效果。
ios ×3
objective-c ×3
cocoa ×2
iphone ×2
ruby ×2
xcode ×2
activeadmin ×1
architecture ×1
asynchronous ×1
friendly-id ×1
globalize ×1
heroku ×1
laravel ×1
laravel-5 ×1
macos ×1
nsnumber ×1
view ×1