控制器实例变量是否可以在资产管道中访问?

时间:2011-08-28 22:06:14

标签: ruby-on-rails ruby-on-rails-3.1

在资产管道中给出文件posts.js.coffee.erb,我可以这样做

  alert "<%= Rails.env %>"

但是如何访问控制器中定义的实例变量?

  alert "<%= @posts.to_json %>"

2 个答案:

答案 0 :(得分:2)

你做不到。我试图将主题功能添加到博客应用程序,结果发现它不会看到应用程序帮助程序方法或实例变量。

我所做的是为主题中的show动作创建css视图,例如 show.css.erb ,它将通过url访问,如 /themes/black.css

使用javascript也可以这样做,所以如果你需要一个特定的javascript视图,只需为 posts.js.erb 创建一个视图

这种技术在rails中并不新鲜。我记得有人在twitter上询问你是否可以在09年的asp.net mvc中做类似的事情

此外,您需要让控制器响应该格式,以下是我正在处理的应用程序的片段。

def show
  @theme = Theme.find(params[:id])

  respond_to do |format|
    format.html
    format.css
  end
end

答案 1 :(得分:1)

我认为你需要从视图中提醒它,而不是静态的js文件。