我目前正在开发一个Rails项目,我正在构建一个使用json_builder的视图来使用Layar API,如下所示:
layer "Layer name"
errorString "ok"
errorCode 0
hotspots @inspections do |inspection|
id inspection.slug
anchor do
geolocation do
lat inspection.lat
lon inspection.lng
end
end
text do
title inspection.name
description "#{inspection.rating} out of 5"
imageURL "http://my-url.com/assets/rating#{inspection.rating}.png"
end
end
但是,当我在浏览器中加载此视图时,我的JSON的title
部分不会出现。我已经设法将其缩小到我的layout_helper
文件中的帮助方法(我一直在使用漂亮的生成器),也称为title
。由于我不需要这个帮助器,有没有办法只为这个特定的控制器动作运行clear_helpers
?或者有更简洁的方法吗? (我对Rails很新,你可能会说!)
答案 0 :(得分:1)
理论上,您应该能够在控制器中执行以下操作:
class SomethingController < ApplicationController
helper :layout, :except => :show # Or whatever action you want to skip here
修改强>
显然Rails不支持辅助方法,不像所有类似的方法。不幸的是,似乎没有办法改变每个动作加载哪个助手。我正在使用的一个想法是强制取消注册每个控制器操作的特定帮助程序,但它并不漂亮。
相关API文档:http://api.rubyonrails.org/classes/AbstractController/Helpers/ClassMethods.html
答案 1 :(得分:0)
我最终将有问题的帮助方法重命名为pagetitle
并更改了我的观点。有时最简单的解决方案最简单!