我在我的軌控制器定義對講事件,像這樣:在腳本標籤使用Ruby變量
object_controller.rb
@object.save
@intercom_event = 'object-saved'
在存在於我的application.html.erb
我想部分運行此腳本:
<script>
Intercom('trackEvent', '<%= @intercom_event %>');
</script>
腳本運行並將事件發送到Intercom,就像它應該的那樣。我以爲我正確地將紅寶石變量放入<script>
標記中,但@intercom_event
的輸出爲:<%= @intercom_event %>
,應該是:object-saved
。
此外,如果我是在一個if語句來包裝這個<script>
標籤像這樣(所以它不會發送每一個頁面重新加載時間事件):
<% if @intercom_event.present? %>
<script>
Intercom('trackEvent', '<%= @intercom_event %>');
</script>
<% end %>
它完全忽略了腳本,即使在定義@intercom_event
時也是如此。
嗯,還沒有包裹發送時,在'<% - 如果@ intercom_event.present? - %>'標記。當我刪除if語句時,它現在不發送任何內容。我想知道爲什麼在視圖文件中沒有看到控制器中定義的變量 – Reuben 2014-09-24 15:53:27
控制器實例變量會自動傳播到視圖級別。你確定你正在採取正確的行動嗎?總是檢查'log/development.log'。 – tadman 2014-09-24 16:11:41