小编Jer*_*ith的帖子

使用AFNetworking 2.0上传图像

我不明白为什么这么难.在线的所有教程和文章似乎都在谈论1.0 api,这是非常没用的.

我尝试了几种不同的方法,得到了不同的结果.我究竟做错了什么?

  1. 上传任务 - 这似乎不是使用多部分形式,wtf?

    NSMutableURLRequest *request = [self.manager.requestSerializer multipartFormRequestWithMethod:@"POST"
                                                                                      URLString:[[NSURL URLWithString:url relativeToURL:[NSURL URLWithString:ApiBaseUrl]] absoluteString]
                                                                                     parameters:@{}
                                                                      constructingBodyWithBlock:nil];
    
    NSProgress *progress;
    NSURLSessionUploadTask *task = [self.manager uploadTaskWithRequest:request
                                                            fromData:data
                                                            progress:&progress
                                                   completionHandler:^(NSURLResponse *response, id responseObject, NSError *error) {
                                                     if (error) {
                                                       NSLog(@"[error description] = %@", [error description]);
                                                     } else {
                                                       NSLog(@"success!");
                                                     }
                                                   }];
    
    [task resume];
    
    Run Code Online (Sandbox Code Playgroud)
  2. 发布一个块 - 这似乎没有附加任何东西

    [self.manager POST:url
               parameters:@{}
    constructingBodyWithBlock:^(id <AFMultipartFormData> formData) {
        [formData appendPartWithFileData:data
                                    name:@"post[picture]"
                                fileName:@"picture.jpg"
                                mimeType:@"image/jpeg"];
    }
                  success:^(NSURLSessionDataTask *task, id response) {
                    NSLog(@"Success");
                  }
                  failure:^(NSURLSessionDataTask *task, NSError *error) {
                    NSLog(@"Error: …
    Run Code Online (Sandbox Code Playgroud)

objective-c ios afnetworking-2

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

在活动记录中使用arel的关系计数

我有一个非常艰难的时间来确定如何执行此查询以及其他类似于活动记录中的arel.

  select users.id, 
         users.name, 
         maps.count as map_count, 
  from users
  left join (select user_id, count(map_id) as count from maps_users group by user_id) maps on users.id = maps.user_id
Run Code Online (Sandbox Code Playgroud)

从表面上看,它看起来就像Nik的例子(http://magicscalingsprinkles.wordpress.com/2010/01/28/why-i-wrote-arel/):

photo_counts = photos.
group(photos[:user_id]).
project(photos[:user_id], photos[:id].count)

users.join(photo_counts).on(users[:id].eq(photo_counts[:user_id]))
Run Code Online (Sandbox Code Playgroud)

但我不能让它在使用活动记录的rails中工作.我认为等效应该是这样的,但它出错了:(

  maps = Map.arel_table
  map_counts = Map.group(maps[:owner_id]).
                   select(maps[:owner_id]).
                   select(maps[:id].count.as("map_count"))
  users = User.joins(map_counts).on(User.arel_table[:id].eq(map_counts[:map_count]))
Run Code Online (Sandbox Code Playgroud)

关于如何做的任何想法?

ruby activerecord ruby-on-rails arel

8
推荐指数
1
解决办法
2847
查看次数