Контроллер Ruby on Rails и архитектура с ячейками

Я решил попробовать использовать плагин ячеек от рельсов:

http://cells.rubyforge.org/community.html

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

Итак, я смог заставить ячейки работать правильно внутри одного представления, которое вызывает частичное. Теперь то, что я хотел бы сделать (однако, возможно, мои инстинкты должны быть перенаправлены, чтобы быть более «рельсовыми»), это вызвать контроллер одной ячейки и использовать параметры для рендеринга одного вывода по сравнению с другим.

В принципе, если бы был контроллер вроде:

def index
   params[:responsetype]
end

def processListResponse
end

def processSearchResponse
end

И у меня есть два разных метода контроллера, на которые я хочу ответить на основе типа ответа params, где у меня есть один шаблон на внешнем интерфейсе и я хочу, чтобы внутренний «компонент» отображался по-разному в зависимости от того, какой тип запроса сделан. Это позволяет мне повторно использовать один и тот же интерфейсный код.

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

Кажется, что внутри структуры ячеек должна быть опция «рендеринга» для рендеринга на определенный контроллер или представление, но это не работает, как я ожидаю, и я не знаю, нахожусь ли я даже на приблизительном уровне.

Спасибо!


person dt.    schedule 03.05.2010    source источник
comment
В одном предложении, каков ваш вопрос?   -  person mcandre    schedule 25.05.2010


Ответы (1)


Как ячейка узнает, в каком контроллере она отображается? Это нарушит инкапсуляцию.

Вы можете использовать #render_cell в своем представлении контроллера и, возможно, поместить вокруг него какой-нибудь решающий фактор? Это то, о чем вы просите?

person apotonick    schedule 21.11.2010