2010-01-02 3 views
0

Тот же вопрос задавался много раз, но я не могу найти решение, которое работает для меня.Отображение представления контроллера в другом контроллере в Rails

У меня есть три модели, сообщения, пользователи и изображения (скрепки).

Я использую restful_authentication и настроил его так, чтобы каждый пользователь видел только свое сообщение в сообщениях/указателях. Я также дал ему возможность загрузить изображение профиля.

Мой вопрос: как взять снимок/индекс и показать его в столбце/индексе. Я хочу показать миниатюру поверх страницы post/index, за которой следуют сообщения.

Я использовал партиалы, но я получаю ошибку

NoMethodError in Posts#index 

Showing app/views/us/_picture.html.erb where line #1 raised: 

You have a nil object when you didn't expect it! 
You might have expected an instance of Array. 
The error occurred while evaluating nil.each 

Extracted source (around line #1): 

    1: <% for u in @us %> 
    2: <tr> 
    3:  <td><%= image_tag u.picture.url(:thumb) %></td> 
    4:  <td><%=h u.name %></td> 

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

Благодарим за помощь.

ответ

1

Ошибка заключается в том, что вы присвоили переменной экземпляра @us шаблон, который вы обычно делаете в контроллере.

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

В вашем контроллере захватить множество пользователей (с картинками) и назначить его @us, некоторые основные псевдо-код:

class PostsController < ApplicationController 
    def index 
    @us = User.find(:limit => 10, :include => [:picture]) 
    end 
end 
+0

Спасибо вам за ответ. Я получаю «Не удалось найти U без ID». Может быть, потому, что у меня нет изображения, принадлежащего пользователю (не под restful_authentication?) –

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