like-twitter アプリケーションのチュートリアルを拡張して、(チュートリアルに関係なく) 最初のスクリプトを含めようとしています。
ユーザーがサインインしているときにのみ機能するスクリプトを作成しようとしています (ユーザーがサインインしていないときにスクリプト エラーが発生するため、このルールを作成する必要があることがわかりました)。
js ファイルが呼び出され、次のstatic_pages.js.coffee
ようなコードが含まれます。
micropost =
p: {
...
}
init: ->
...
$(document).ready ->
micropost.init()
コードは、ユーザーがサインインしたときにのみ表示されるマイクロポストに関連しているため、それについて通知するためのルールが必要です。
views/layout/application.html.erb
次のような変数を含むスクリプトをメイン ファイルに入れることができます。
<head>
<title><%=full_title(yield(:title)) %></title>
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<script type="text/javascript">
var signed_in = <%= signed_in? =>;
</script>
<%= csrf_meta_tags %>
<%= render 'layouts/shim' %>
</head>
しかし、それはきれいな方法のようには見えません。私の質問は次のとおりです。
- どうすればいいのですか?
- コントローラー経由で行う必要がありますか?(やり方がわからない…)
- また、$(document).ready を static_pages.js.coffee 内に配置しました。これは、dom の構築後にすべての関数を呼び出す呼び出しであるため、メインの application.js に配置する必要がありますか?