ActionView :: MissingTemplate:缺少模板:formats => [:mobile]

时间:2012-05-21 08:13:35

标签: ruby-on-rails ruby-on-rails-3

在Rails中,我正在尝试实现移动视图。刚刚安装了mobylette gem,它似乎比mobile_fu有更新的活动。

https://github.com/tscolari/mobylette

但是,移动设备的大多数请求最终都会出现此错误

ActionView::MissingTemplate: Missing template my_controller/index, application/index with {:locale=>[:en], :formats=>[:mobile], :handlers=>[:erb, :builder, :haml]}. Searched in: * "/app/app/views" * "/app/vendor/bundle/ruby/1.9.1/gems/devise-1.5.2/app/views" * "/app/app/views"

知道为什么吗?

2 个答案:

答案 0 :(得分:0)

您可能需要添加自己的移动格式。

在config / initializers / mime_types.rb中,添加:

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

答案 1 :(得分:0)

如果您设置了mime类型并且控制器中有respond_to :mobile,则唯一的问题应该是移动模板文件实际丢失。

默认情况下,您需要在名为<action>.<format>.<handler> or <action>.<handler>

的相应view_path中包含模板文件

我怀疑默认设计模板(成功创建重定向以显示操作后)为show.html.erb

您最安全的选择是创建它或符号链接(以及所有其他操作)

ln -sf show.html.erb show.mobile.erb # in linux

在哪儿?好吧,如果你使用了设计rake任务

rails generate devise:views

然后你知道它会在app/views/devise/registrations

之下

如果您在config.scoped_views = true内设置config/initializers/devise.rb,那么它将位于app/views/users/registrations下,因为您的设计模型是User using UsersController。