0

我错过了什么步骤?返回到我的 iPhone 的视图来自 application.html.erb 和 index.html.erb

第 1 步:在 config/initializers/mime_types.rb 中取消注释 iPhone 的声明行:

Mime::Type.register_alias "text/html", :iphone

第 2 步:制作app/views/layouts/application.html.erb的副本,将其命名为application.iphone.erb (我喜欢将标题更改为特定于您的 iPhone 的内容,这样您就可以立即看到正在使用正确的布局)

<title>My iPhone Tasks</title>

第 3 步:在控制器中复制必要的视图文件,将它们命名为 index.iphone.erb

第 4 步:决定是坚持使用专门调用 iphone 格式的 Rails 2 模型的 respond_to 块,还是切换到使用 respond_with 调用的更 DRY 方法。这就是我所做的,呃尝试过;-)

步骤 4a:将 respond_to 块添加到您的控制器:

class TasksController < ApplicationController
respond_to :html, :iphone

步骤 4b:干燥你的方法,例如:

def index
  @tasks = Task.all
  respond_with (@tasks)
end

第 5 步:重新启动您的服务器并从您的 iPhone 上点击该应用程序。

4

1 回答 1

2

您必须为您的移动 mime 类型编写一个响应程序,以便 respond_with 正常工作。

在 application_controller.rb 中定义响应者:

  def self.responder
    MobileResponder
  end

class MobileResponder < ActionController::Responder

  def to_format
    super
  rescue ActionView::MissingTemplate => e
    if request.format == "iphone"
      navigation_behavior(e)
    else
      raise unless resourceful?
      api_behavior(e)
    end
  end
end
于 2011-07-12T14:42:55.230 回答