有谁知道如何从elasticsearcg(使用轮胎)索引的图像中获取image.url?
class Photo < ActiveRecord::Base
include Tire::Model::Search
include Tire::Model::Callbacks
attr_accessible :caption, :user_id, :image, :venue_id
attr_accessible :id, :image_file_name, :created_at, :updated_at, :city, :state, :country, :image_url
has_attached_file :image, :styles => { :large => "9999x9999", :medium => "300x200>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
end
class SearchController < ApplicationController
def index
city_name = params[:city]
@photos = Photo.search city_name
respond_to do |format|
format.html # index.html.erb
end
end
端
在我的index.html.erb中:
<% @photos.each do |photo| %>
<%= image_tag photo.image.url(:medium) %>
我收到一个未定义的方法`url'为nil:NilClass
有人能帮助我吗?
非常感谢y提前
答案 0 :(得分:2)
添加到您的照片模型:
mapping do
indexes :image
end
def image
picture.url(:medium)
end
在你看来之后
<%= image_tag photo.image %>
答案 1 :(得分:0)
图像包含在存储模型的SQL数据库中,因此您需要使用搜索功能查询ElasticSearch,然后在该数据库中查找相应的条目。这是通过将load: true
传递给Photo.search
来实现的。
@photos = Photo.search city_name, load: true