1

ドキュメントやオンラインのどこにもこれが見つからなかった理由はわかりませんが、コントローラーが次の場合:

# HomeController
class HomeController < ApplicationController
   def index
      @var = "A Sample Variable"
   end
end

..そして、私の HAML ビューが haml レイアウトを使用し、次のように見える場合:

/ index.html.haml
%p "This is a paragraph"
%p
   = @var

...インスタンス変数 @var が表示されないのはなぜですか? 段落はありますが、@var は常に null です。@var.split('') を呼び出すと未定義のメソッドエラーがスローされるため、これを知っています。私が使用している HAML のバージョンは 4.0.3 です。何か案は ?

4

2 に答える 2

2

indexアクションはindex.html.hamlではなくをレンダリングするためhome.html.hamlです。そこで間違ったビューをレンダリングしています。

于 2013-05-30T21:38:42.557 に答える
1

ビューのファイル名をindex.html.haml、インスタンス変数を定義したアクションに変更します。または、コントローラーにホーム アクションを追加し、そこに var インスタンス変数を格納して、ホーム テンプレートがそれにアクセスできるようにすることもできます。

于 2013-05-30T21:38:46.963 に答える