0

トレース出力をERBテンプレートに追加しようとすると、変数がどこから来ているのかを見つけようとすると、次の問題が発生しますex_title

現在のスコープで可能なすべての変数を一覧表示しようとしましたが、存在しません。

<%= instance_variables.grep(/ex_title/) %>  # renders an empty array
<%= global_variables.grep(/ex_title/) %>    # renders an empty array
<%= local_variables.grep(/ex_title/) %>     # renders an empty array

<%= instance_variables.sort %>   # renders array with many elements
<%= global_variables.sort %>     # renders array with many elements
<%= local_variables.sort %>      # renders array with many elements

変数ex_titleは確かに存在しますが:

<%= ex_title %>                  # renders "Categories - Online store"
<%= ex_title.class %>            # renders "String"
<%= ex_title.object_id %>        # renders "15825900"

グローバル変数、ローカル変数、またはインスタンス変数にない場合、他にどこにありますか?

4

1 に答える 1

0

次に、それがメソッドであると結論付けなければなりません。defined?を判別するために使用しex_titleます。例えば:

defined? ex_title  #=> nil

def ex_title; end
defined? ex_title  #=> "method"

ex_title = Object.new
defined? ex_title  #=> "local-variable"
于 2013-02-16T14:24:24.330 に答える