在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"
知道为什么吗?
答案 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>
我怀疑默认设计模板(成功创建重定向以显示操作后)为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。