如何下载 swift 中 rails 中由回形针更新的图片数据?

How to download a picture data in swift that is updated on rails by paperclip?

我担心如何设置 swift.I 中的 url 想在 swift 上使用 SDWebImage 下载和显示图像。我设置了url如下,但是不能return图片。我找不到如何自动获取样式和基名。

http://localhost:3000/assets/photos/:id/:style/:basename.:extension

我一直在用RoR写服务器端,用回形针上传图片。

感谢您的帮助。

Rails

class User < ActiveRecord::Base
  has_many :questions
  has_many :answers

  has_attached_file :photo, 
    :styles => { medium: "300x300>", thumb: "100x100>" },
    :url  => "/assets/photos/:id/:style/:basename.:extension", 
    :path => "#{Rails.root}/public/assets/photos/:id/:style/:basename.:extension" 
  validates_attachment :photo, content_type: { content_type: ["image/jpg", "image/jpeg", "image/png", "image/gif"] }
end

Swift

let cell = tableView.dequeueReusableCellWithIdentifier("iconIdentifier", forIndexPath: indexPath) as! IconTableViewCell
let imageURL = NSURL(string: "http://localhost:3000/assets/photos/:id/:style/:basename.:extension")
        cell.iconView.sd_setImageWithURL(imageURL!)
return cell

基本上您需要的是图片的 URL...告诉您的 ROR 编码器发送图片的 URL 作为对 API 的响应...如果你正在使用 Alamofire 你可以简单地试试这个

Alamofire.request(.GET, "https://robohash.org/123.png").response { (request, response, data, error) in
        self.myImageView.image = UIImage(data: data, scale:1)
    }

我已经使用 jbuilder 解决了 question.By,我有照片的路径。然后我展示了SDWebImage的照片。

user.rb

resource :users do
  desc "return a document"
  params do 
    requires :id, type:Integer
  end
  post ':get_picture', jbuilder:'users/picture' do
    @user = User.find(params[:id])
  end
end

picture.jbuilder

json.(@user, :photo)