我有一种情况,我将json对象返回到我的应用程序,它是从YML文件构建的。 因为要解析yml文件并将其作为json返回,我总是要做这样的事情:
format.json { render json: YAML.load(render_to_string :file => File.join(Rails.root,'app','views','home','icons.yml.erb'), :layout => false ) }
我想通过创建一个自定义格式(这会导致json)来缩短此操作,因此我不想创建新的mime类型。
我的想法是写:
format.myformat
它会自动搜索内部的意见/目录myController的myaction.myformat.erb,并会自动解析YAML文件返回它作为一个JSON对象。
这可能吗? 如果是的话,我怎么能最终做到这一点?
编辑1:我在config / mime_types.rb中找到了一个重要的建议:
Mime::Type.register_alias "text/html", :iphone
所以我可以为mime类型添加别名,现在最大的问题是:如何定义给定格式的默认渲染动作,比如format.html呢?
如果我写
format.html
current_action.html.erb将自动呈现,如何选择正确的方法来呈现自定义格式?
编辑2:
我设法创建了这个代码(在控制器内部,通过我构建的一些辅助方法):
def icons
respond_to do |format|
format.extjson { render_to_extjson }
end
end
如果我写的话,可以让铁道理解:
def icons
respond_to do |format|
format.extjson
end
end
它必须做:
format.extjson { render_to_extjson }
默认?