控制器实例变量是否可以在资产管道中访问?
问题描述:
鉴于资产管道文件posts.js.coffee.erb,我能做到这一点控制器实例变量是否可以在资产管道中访问?
alert "<%= Rails.env %>"
但有关访问控制器的实例变量定义是什么?
alert "<%= @posts.to_json %>"
答
你不能。我正在尝试向博客应用程序添加主题功能,事实证明,它不会看到应用程序帮助程序方法或实例变量。
我做了什么,而不是为创建CSS视图为主题的表演动作,像show.css.erb,这将通过网址访问,就像/themes/black.css
的同样可以用javascript来完成,所以如果你需要一个特定的javascript视图,只需创建一个视图为posts.js.erb
这种技术在rails中甚至不是新事物。我记得有人在twitter上问过你是否可以在asp.net mvc中做这样的事情09
此外,你需要让你的控制器响应这种格式,下面是我正在处理的应用程序的一个片段。
def show
@theme = Theme.find(params[:id])
respond_to do |format|
format.html
format.css
end
end
答
我想你需要从视图提醒这个,而不是一个静态的js文件。
只是澄清我原来的问题是怎么回事:当资产被打包时,您可以在启动时访问资产管道中的Rails.env。但一旦完成,资源就会在应用程序运行时作为静态文件提供。什么都不能插入。 – Gavin