2013-11-02 5 views
0

мое приложение имеет отношение habtm ч/б списки и категории. теперь с страницы индекса категорий, пользователь выбирает окно выбора для просмотра списков на странице показа.рельсы скрепка доступ изображение с другого взгляда

сейчас я не могу получить доступ к изображениям, прикрепленным к листингу на странице категории.

listing.rb

attr_accessible :placeholder, :categories_ids 

    has_and_belongs_to_many :categories 
    has_attached_file :placeholder, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png", 
         :url => "/system/:hash.:extension", 
        :hash_secret => "longSecretString" 

категории контроллер

def index 
    @categories = Category.all 
end 

def show 
    @categories = Category.find_by_sql ["select distinct l.* from listings l , categories c, categories_listings cl where c.id = cl.category_id and l.id = cl.listing_id and c.id in (?,?)" , params[:c][:id1] , params[:c][:id2]] 
end 

SQL, просто фильтрует и отображает результаты в шоу-странице, где я могу показать свои атрибуты, но не могу получить доступ к заполнитель. обратите внимание на множественное число @categories в шоу

категории показать страницу

<ul> 
    <% @categories.each_with_index do |c, index| %> 
    <% if index == 0 %> 
    <li class="first"><%= c.place %></li> 

    <%= image_tag c.placeholder.url(:thumb) %> 

    <li><%= c.price %></li> 

    <% else %> 
    <li><%= c.place %></li> 
    <li><%= c.price %></li> 

    <%= image_tag c.placeholder.url(:thumb) %> 
    <% end %> 

    <% end %> 
</ul> 

Access image from different view in a view with paperclip gem ruby on rails

это сказал, чтобы объект множественного числа и вызвать цикл, WCH должен разрешить доступ к изображению.

в этом случае не работает.

undefined method `placeholder' for #<Category:0x5c78640> 

но удивительная вещь, заполнитель будет отображаться в виде массива всех изображений для всех списков, если они используются, как предложено в этом StackOverflow, WCH, очевидно, не так, как я предпочитаю. где вопрос

ответ

0

Поскольку метод категории заполнитель `t гавани, вместо этого есть

Update:

@category.listings.each do |l| 
    l.placeholder 
end 

обн

Попробуйте просто получить категорию, а затем петлю через его lisings

def show 
    @category = Category.find(params[:id]) #you get category and you able to loop throgh it listing array and get it placeholder 
end 

upd

@categoies.each_with_index do |c| 
    c.listings.each do |l| 
    l.placeholder 
    end 
end 

UPD2:

@categoies.each_with_index do |c,i| 
    c.listings.each do |l| 
    image_tag l.placeholder.url(:thumb) 
    end 
end 
+0

это не будет работать. объект @category хранит списки по sql. Я не могу использовать .listings в цикле do. он подбрасывает ошибку. – curiousCoder

+0

Все атрибуты списков могут быть доступны в его нынешнем виде. но не имеет доступа к заполнителю. это столбец в списках. но у? – curiousCoder

+0

Как я понимаю, в действии show вы хотите отобразить весь список, относящийся к категории и листингам заполнителя. Я прав? – FastIndian

Смежные вопросы