問題タブ [camping]
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 - Camping と Sinatra の間に重要な違いはありますか?
Camping と Sinatra の違いはそれほど重要ではなく、どちらを選んでも問題ないと思います。しかし、これが本当かどうか、Ruby の専門家に尋ねたいと思います。実際、Sinatra と Camping のマイクロフレームワークの間に重要な違いはありますか? そして、どちらを使用するかをどのように決定しますか?
ruby - Ruby のアクティブ レコードの集計クエリを受け取るにはどうすればよいですか?
ruby、camping webframework、activerecord-2.1.1 を使用して、私のデータベース構造は ...
各ユーザー名のヒットの合計が欲しい
次のコードがあります。
以下の結果を受け取りました。ユーザー名のみが返されました:
ユーザー名とユーザー名の合計の両方を受信できません'hit
ruby-on-rails - 別のビューからビューをレンダリングする
レンダリングされるすべてのビューに表示したいビューがいくつかありますが、コードを複製したり仕様を破ったりしない限り、これを達成する方法を見つけることができないようです。
これが私の現在のコードで、すべてのビューに呼び出しを入れています:
共通ブロックをボディの外にレンダリングできるようにすることもできますが、これは仕様に反しており、将来的にいくつかのスクレイパー スクリプトを恐ろしく壊してしまう可能性があります。
ruby-on-rails - キャンプ:ユーザーを最近のエントリに戻しますが、エラーは保持します
ユーザーは、URLを使用してWebアプリの特定のエントリを表示できます。/entry/8
、 例えば。エントリが存在しない場合、「エントリが見つかりません」が追加され@messages
、エラーページが表示されます。
空白のページの代わりに任意のクエリを表示したいのですが、エラーメッセージを表示し続けるための良い方法がわかりません。任意のクエリのコントローラーで実行する必要のある他のアクションがあるため、クエリとを単に複製することはできませんrender :posts
。
いくつかのサンプルコード:
ruby - CampingのURL()は、期待どおりに「サイトルート」を提供しませんか?
私の手に負えない状況のため、私のプロダクションキャンプサイトはに表示されmysite.example.com/mysite
ます。これは一般的なApache/Passenger構成の問題であると確信しています。サーバーが制御不能であるため、今のところ修正する方法には興味がありません。言うまでもなく、「/」のコントローラーはそこを指しており、すぐに変更することはできません。
さて、長い間、これは問題ではありませんでしたR(MyIndexController)
。正しい場所を指しているからです。Rack::Static
ただし、 $ SITE_ROOT / publicにアクセスできるようにするための呼び出しを使用して、サイトのCSSを提供しています。これは、スタイルシートがにあることを意味しますmysite.example.com/mysite/css/style.css
。ここで問題が発生します。CampingURL()
メソッドは、私のレイアウトで呼び出されると、http://mysite.example.com
ではなく、を与えhttp://mysite.example.com/mysite
ます。そのため、/ cssサブディレクトリを指すようにすることはできません。これは、途中に「ホップ」がないためです。ラックアップをローカルで実行すると、すべて問題ありませんが(このファイルはにあるためlocalhost:8080/css/style.css
)、運用サーバーでは修正方法がわかりません。
私の質問:代わりに呼び出す必要のある別のメソッド(おそらくRackから直接)はありますか?レイアウトのレンダリングごとに、ハードコーディングしたり、ローカルで実行しているか(デバッグ用)、本番環境で実行しているかを判断するためのハックを避けたいと思っています。
ETA:わかりました、これは見知らぬ人になります。明らかに、私は上記の実際の詳細のいくつかを抽象化しましたが、その一部は「オーバースクラブ」したと思います。「トップレベル」のURLは、 (アカウント)や(JQueryの「素敵な」UI)では/mysite/rest
なく、実際には(RESTfulインターフェイスの開発者中心のHTMLプレゼンテーション)に似ています。これらは、config.ru、経由などで設定されます。/mysite/management
/mysite/ui
run Rack::URLMap.new(Hash['/rest' => RestModule, '/ui' => PrettyInterfaceModule, '/management' => UserManagerModule]
したがって、以下のコメントへの回答として、RestModuleのビューからのR(Index)は、実際にはを返します/mysite/rest/
。例として、レイアウトにのような「ホーム」リンクがあり、のようa :href=>R(Index)
なコードを生成します<a href="/mysite/rest/">
。サーバーは、「サイトルート」で直接./publicからのファイルを提供するように構成されているため、前述のように、./public/css/style.css
実際にはで表示http://mysite.example.com/mysite/css/style.css
されます。自動的に生成するのに問題があるのはそのリンクです。Rack::URLMapが原因で、このリソースを見つけるためにネイティブのRackメソッド(Campingの抽象化ではない)に依存する必要があると思いました。
ruby - キャンプとhamlでパーシャルをレンダリングする
キャンプに付属している例のように、キャンプを使用して簡単なブログを作成しようとしています。ビューには、markabyの代わりにhamlを使用したいだけです。_post.html.hamlパーシャルを使用して投稿をレンダリングしたいのですが、間違った方法で行っているのではないかと感じています。
Blog.rb
views / index.html.haml
views / _post.html.haml
エラー
ruby - 最近、Ruby で非同期 Web アプリを作成する良い方法は何ですか?
WebSocket コンポーネントを使用して Web アプリケーションを構築し、ミル ラック ベースのフロントエンドを実行したいと考えています。私の最初の計画は、フロントエンドに Camping を使用し、サーバーをシンで実行し、ラックconfig.ru
を次のようにすることでした。
AppWebSockets
は websocket-rack によって提供されており、うまく機能します。リクエストがない場合は、Upgrade: WebSocket
単純に 404 になり、リクエストはカスケードをたどってキャンプ アプリAppWebPages
.
このキャンプ Web アプリケーションは、通常の http リクエストを使用して CouchDB データベースと通信するために、必然的に IO へのアクセスを必要とすることが明らかになりつつあります。eventmachine と互換性のある非同期ライブラリなど、http リクエストを実行する方法はたくさんあります。コールバックをサブスクライブすると、ラックが返され、応答を作成する準備が整うまでに、ページは既に応答しています。em-synchrony を使用して、Ruby 1.9 のファイバーを介して同時実行性を取得できるようにしたいと考えています。 .
em-synchrony サポートが組み込まれている、シンに似ていると主張する Goliath と呼ばれる Web サーバーに遭遇しましたが、サーバーを起動してテストするためのコマンド ライン ユーティリティがなく、別の種類のファイルをこれはかなり不快です。また、現在 Thin のサポートのみを指定している websocket-rack をサポートするかどうかも不明です。
キャンプや WebSocket へのアクセスなどの使い慣れたラックベースのツールを利用しながら、IO のブロックを回避するための良い方法は何ですか?
ruby - グローバルスコープを汚染することなく、フレンドリーなnosql ORMを構築するにはどうすればよいですか?
しばらくの間、私は CouchDB とのインターフェースとなる小さな Ruby ライブラリーの構築に取り組んできました。CouchDB は、HTTP インターフェースを備えたきちんとした小さな文書データベースです。主な機能は次のとおりです。
- ドキュメント オブジェクトは美化されたハッシュです
- JavaScript Map/Reduce 関数はネイティブ Ruby で記述され、S 式を使用して JavaScript に解析されます
- 複数のCouchデータベースとインターフェースできます
- Camping などのマイクロフレームワークとうまく統合する必要があります
私はこのようなことができるようにしたい:
ここで、「レシピ」は、ドキュメントに必要ないくつかのキーを定義するクラスです (クラス名は自動的に「種類」キーとして使用されます)。
しかし、困難な時期には、次のようなことをしたいと思うかもしれません。
さて、明らかにそのように「プッシュ」できるようにするには、データベースが..スコープ内のどこかにある必要があります..またはドキュメントオブジェクト自体がデータベースオブジェクトへの参照を保持する必要がありますか? ActiveRecord のような確立された ORM では、これはどのように行われますか?
そんなことはしたくありませんrecipe.push!(@couch_database_object)
。しかし、スコープを汚染するクズにはなりたくありません。
何かアドバイス?
ruby - キャンプモデルは関連付けを無視します
呼び出すとき@team.players
(または@player.team
):
私はそれを間違って使用していますか?
ruby - キャンピングのパス構築方法
Lucky StiffのCampingマイクロフレームワークからのコードのこの部分を誰かが私に説明してもらえますか?