2

Ruby on Rails 3.2.2 と jquery-rails 2.0.2 gem ( jQuery UIプラグインを含む) を使用しています。コードを DRY (Don't Repeat Yourself) するために、アプリケーションでほぼ同じ方法でレンダリングされる部分的なテンプレートでjQuery ダイアログ ウィジェットを「抽出」することを計画しています。そのため、ステートメント全体でいくつかの「複雑な」コード (おそらく JavaScript コード) を渡すことによって、そのテンプレートを実装およびレンダリングすることを考えています:locals... しかし、そのコードを適切に渡す方法に問題があります。

:locals 具体的には、どの「ビルド」 / 「移入」するかによってテンプレートをレンダリングしたいと思います。たとえばオプションまたはイベント(: 「渡された」/「ビルドされた」/「入力された」コンテンツは、JavaScript コード、または JavaScript と Ruby コードの両方であることが意図されています)。titleclose

作りたいものを実現するために、何を/どのように/作ることができますか? 「一般的な」アプローチやプラクティスはありますか?

4

1 に答える 1

0

簡単な例を次に示します。これが役立つかどうかを確認し、YMMV.

パーシャルには、JavaScript および Ruby コードを ERB (または HAML、または使用したい任意のテンプレート) として含めることができます。

共有パーシャルを directory に置くという規則を使用し./app/views/sharedます。

サンプルファイル./app/views/shared/_dialog.html.erb:

<!-- typical jQuery dialog box creator -->
<script>
  $(function() {
    $( "#dialog" ).dialog();
  });
</script>

<!-- typical dialog with Ruby ERB for title and message -->
<div id="dialog" title="<%= title %>">
  <p><%= message %></p>
</div>

ビュー ページからパーシャルを呼び出すには:

<h1>My Page</h1>
<%= render :partial => "shared/dialog",
    :locals => { :title => :"Hello", :message => "World" } %>
于 2012-08-23T04:59:52.240 に答える