2

我目前正在开发一个 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

但是,当我在浏览器中加载此视图时,title我的 JSON 部分没有出现。我已经设法将其缩小到我的layout_helper文件中的一个辅助方法(我一直在使用漂亮的生成器),也命名为title. 由于我不需要这个助手,有没有办法clear_helpers只为这个特定的控制器动作运行?或者有没有更简洁的方法来做到这一点?(我对 Rails 很陌生,你可能知道!)

4

2 回答 2

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

于 2012-06-07T10:35:27.893 回答
0

我最终将有问题的辅助方法重命名为pagetitle并改变了我的观点。有时最简单的解决方案是最简单的!

于 2012-06-07T11:13:12.567 回答