問題タブ [partials]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Ruby/Rails 1&2: コレクションの問題
ねえ、私はルビー/レールを学び始めたばかりです。現時点では、かなり古いドイツ語の本「Praxiswissen Ruby on Rails」の例を実行しようとしています。これはかなり古く、Ruby on Rails 1 用に書かれています。とにかく、Rails 2 で例を実行しようとしましたが、問題が発生しました。 1週間以上。
本(Rails 1)によると、コントローラーに書き込む必要があります:
page.replace_html( 'broadcast_search_result', :partial => 'broadcast_search_result', :collection => @videos['items'] );
Rails 2 のこれは、次のように記述されていることがわかりました。
@items = try(@videos[:items])
page.replace_html( 'broadcast_search_results', :partial => @items )
ただし、サーバーは次のメッセージをスローします。
ActionView::MissingTemplate (ビュー パス app/views にテンプレート hashes/_hash.erb がありません):
app/controllers/stations_controller.rb:46:in `__instance_exec0'
app/controllers/stations_controller.rb:30:in `search_broadcasts'
ステーション/_item.erb の代わりにテンプレート hashes/_hash.erb を作成する必要があります。誰か助けてくれませんか?
どうもありがとうございました!
OK、コントローラーコードを追加します: station_controller.rb:
モデル Broadcast.rb (Broadcast.get_videos 用):
asp.net-mvc - ビュー モデル (ViewData)、UserControls/Partials、およびグローバル変数 - ベスト プラクティス?
すべてのパーシャルとビューに「グローバル」メンバー (CurrentUser、Theme など) を含める良い方法を見つけようとしています。
このデータを返すことができるロジック クラス (BL.CurrentUser など) は必要ありません。ビューのモデルの一部である必要があると思います。そのため、これらのメンバーを使用して BaseViewData から継承してみました。私のコントローラーでは、この方法または別の方法 (BaseController のフィルターまたは基本メソッド) で、継承クラスのインスタンスを作成し、それをビュー データとして渡します。この時点まではすべて完璧です。なぜなら、ビュー データをメイン ビューでベース メンバーと一緒に使用できるからです。しかし、パーシャルはどうですか?
ブログ投稿を表示する必要がある単純なパーシャルがある場合、次のようになります。
私のビューでこのパーシャルをレンダリングする簡単なコード (その model.Posts は ですIEnumerable<Post>
):
パーシャルのモデルは BaseViewData ではないため、これらのプロパティにアクセスできません。したがって、BaseViewData から継承する PostViewData という名前のクラスを作成しようとしましたが、含まれているビューには、PostViewData を実際に作成してパーシャルに渡すコードがあります。
または、コピーコンストラクターを使用できます
先に進む前に、これを実装する他の方法があるかどうか疑問に思っています。
助言がありますか?
ありがとう!
ruby-on-rails - パーシャルでローカルに定義された変数は、呼び出し元の erb テンプレートにも表示されますか?
パーシャルでローカル変数を宣言し、別の erb テンプレートからパーシャルをレンダリングすると、後者もそれらのローカル変数にアクセスできますか?
ruby-on-rails - Rails でさまざまなクラスのコレクションをレンダリングする
いくつかの異なるクラスのインスタンスを含むコレクションがあり、各インスタンスのパーシャルをレンダリングしたいと考えています。次のコードを使用してこれを行うことができます。
私の質問は次のとおりです。異なるベース ディレクトリで異なるパーシャルをレンダリングするにはどうすればよいですか? 上記のコードは app/views/stories/_story.html.erb を探しますが、このアクションのパーシャルはすべて別のディレクトリ (app/search/_story.html.erb) に保持されます。これを特定する方法はありますか?
ruby-on-rails - Rails -- HAML パーシャルの HTML 出力を文字列として保存し、外部サービスに送信する方法は?
レーキ タスクを使用して、24 時間ごとにニュースレターを自動的に生成しています。ニュースレターの上部に、管理者がカスタマイズしたメッセージを入力できるセクションがあります。管理者が使用する画面には、コレクションを取得する haml パーシャルを使用してレンダリングされた、ニュースレターのライブ プレビューがあります (彼らはこれに固執していました)。
電子メールを生成して送信するために、生成したい電子メールの HTML を (とりわけ) 含むサードパーティ API に xml ドキュメントを送信しています。
私がやりたいのは、この haml パーシャルの出力を rake タスク内に保存することです。これは、PHP の ob_*() バッファリング関数に似ています。次のようなことをする方法はありますか?
おそらく明らかな何かが欠けているので、これを行ういくつかの方法を考えることができますが、それらのほとんどは DRY ではなく、ヘルパー、モデル、またはタスク自体で大量の html を生成したくありません。
これを達成する方法があれば教えてください。
php - ZF:特定のパーシャルに対してのみpartialLoopでsetObjectKeyを使用する
PartialLoopヘルパーのsetObjectKeyメソッドを使用して、モデルをpartialLoopsに取り込む方法を理解しました。特定の部分ループがモデルキーを使用し、他のループは使用しないように指定する方法があるかどうか疑問に思っています。今、私はこのようなことをしなければならないと思います:
これを回避する方法はありますか?
ruby-on-rails - パーシャルとローカル変数
コレクションをパーシャルに渡したい場合は、次のようにします。
カスタム変数内で単一のオブジェクトを渡したい場合は、次のようにします。
コレクションを渡し、カスタム変数を介して「プロキシ」するにはどうすればよいですか (2 番目のケースのように)。
ruby-on-rails - Onclickイベントに基づいてAjaxを使用してページ要素を置き換える
私はこの問題をよりよく理解しているので、この質問を再定式化しています。
ユーザー、製品、品種、季節の4つのモデルを持つアプリケーションがあります。
ユーザー
has_many :seasons
has_many :products, :through => :seasons
has_many :varieties, :through => :seasons
製品
has_many :seasons
has_many :users, :through => :seasons
has_many :varieties
バラエティ
belongs_to :product
has_many :seasons
has_many :users, :through => :seasons
季節
belongs_to :product
belongs_to :user
belongs_to :variety
製品/ショービューでは、特定の製品で利用可能な各品種と、その特定の製品を持っているユーザーを一覧表示します。
製品/ショーページが最初に読み込まれるときに、次のようにして製品を持っているすべてのユーザーを表示します。
また、次のようにして、製品に使用できる品種をリストします。
ここでAjaxを実行する必要があります。品種名をクリックすると、@product.seasonsループを@variety.seasonsに置き換えたいと思います。これは、その特定の種類を持つユーザーのみを表示する必要があると思います。したがって、次のようになります。
近づいていますが、これを機能させることができません。現在、バラエティをクリックしても、フロントエンドでは何も起こりません。ログで、私はこれを取得します:
ログは#4を参照し、アクションとして4を参照します。4はクリックしたアイテムの品種IDです。
これが私の設定です:
ProductsController#show
@product = Product.find(params [:id])
@varieties = @ product.varieties @users = @ product.users
製品/ショービュー#この製品を使用しているユーザーを一覧表示します
VarietiesController#show。
varieties / show.js.rjs
@ page.replace_html "userList"、:partial => "products / users"、:collection => @ variety.users
そのため、現在、ページは適切なhtmlとデータをレンダリングおよび表示しています。しかし、onclickは機能していません。バラエティをクリックすると、アプリがリクエストを適切に処理せず、ユーザーリストが変更されません。
アップデート
アナトリイのコメントへの回答:
どのルートを追加する必要があるのか正確にはわかりません。以下を追加してみましたが、結果は以前と同じでした。
map.resources:varieties、:member => {:show =>:get}
どのメンバールートを呼び出すべきかについて、より具体的に教えてください。
ruby-on-rails - テンプレートと複数のパーシャルをレイアウトに追加する
まず、私は に精通していると言わせてくださいcontent_for
。私が探しているのはここではありません。
テンプレートと任意の数のパーシャルを使用して、たとえば読み込みたい JavaScript ファイルのリストを作成し、それらをレイアウトに渡して処理し、<head>
領域に追加できるようにしたいと考えています。ページで実際にファイルが必要な場合にのみファイルをロードしたいので、すべてをレイアウトに配置したくありません。また、これらは主にビュー固有の変更であるため、コントローラーによって処理されるようには見えません。
名前の配列を返すために使用しようとしましcontent_for
たが、うまくいかないようです。また、複数のパーシャルが独自の前提条件をリストに追加することもできません。また、テンプレート/パーシャルでヘルパー関数を使用してリストに追加し、そのリストをレイアウトで使用しようとしましたが、レイアウト コードがテンプレート コードの前に評価されるようです。
何か案は?ところで、これは JavaScript 固有のものではありません。Ruby オブジェクトをテンプレート/パーシャルからレイアウトに渡す方法が必要なだけです。
編集:リクエストごと、例。css_import
CSS をエミュレートする、私が書いた単なるヘルパーです@import
。
javascript - link_to_remote の後にテンプレートがありません
link_to_remote を使用して、ページのパーシャルを更新しています。問題は、Rails がパーシャルを見つけられないことです。
コントローラー メソッドでパーシャル (html.erb ファイル) へのフル パスを指定しています。
「何か」が作成されるため、コントローラーメソッドがヒットしていることはわかっています。エラーが発生します"Template missing [:controller_name]/[:method_name].js.erb not found"
。
Railsがjs.erbへのデフォルトパスを使用しているように見える理由を誰か説明できますか?
前もって感謝します!