Rails3 и Respond_with проблема - PullRequest
       28

Rails3 и Respond_with проблема

0 голосов
/ 13 января 2011

У меня есть приложение, в котором у меня есть два пользовательских интерфейса.

Первый предназначен для обычных пользователей, а второй - для пользователей iphone.

Все работало нормально, пока яРеорганизовал мой код в контроллере, чтобы использовать декларативный response_with вместо response_to.

Приложение все еще работает для интерфейса html (: format =>: html), но не на интерфейсе iphone (: format =>: iphone).

На iphone, когда я выполняю следующее действие (:: index,: new,: edit,: show), оно работает.

Но когда я делаю (:: create,: update,: destroy), я получаю сообщения о том, что шаблон не найден (например, create.iphone.haml).

На моем контроллере у меня есть

respond_to :html, :iphone

А затем, например,редактирование и обновление действия

def edit
    @refund = Refund.find(params[:id])
    respond_with(@refund)
  end
  def update
    @refund = Refund.find(params[:id])
    if @refund.update_attributes(params[:refund])
      flash[:notice] = 'Refund was successfully updated.'
    end
    respond_with(@refund, :location => project_refunds_path(@project))
  end

На самом деле, мне бы хотелось, чтобы формат: iphone обрабатывался как: html is ... а не вызывая метод to_format, как это указано в документе..

Ответы [ 2 ]

1 голос
/ 21 января 2011

Решил сам.

Просто нужно добавить это в файл инициализатора:

ActionController::Responder.class_eval do
  alias :to_iphone :to_html
end
0 голосов
/ 13 января 2011

Что делать, если вы делаете:

respond_with(@refund, :location => project_refunds_path(@project)) do |format|
  format.iphone { whatever you had here before refactoring }
end
...