問題タブ [ruby-on-rails-5]
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 - Rails 5: ActionCable と db が同期されていない
ActionCable のセットアップ、チャネルのリッスン、リクエストの認証などを正常に行うことができました。ただし、作成直後にチャネルに接続しようとすると、奇妙なバグが発生します (説明が難しい、以下を参照)。
セットアップがあり、プロファイルには壁があり、壁には多くの投稿が含まれています。各投稿には独自のチャンネルがあり、ウォール自体にも独自のチャンネルがあります。壁に投稿が作成されると、ActionCable を介して更新されます。
単純化しましたが、これは意図したとおりに機能します。新しい投稿が作成されると、ウォール チャネルがトリガーされ、クライアントは投稿を受け取り、すべてが有効になります。
問題は、ブロードキャストされた新しい投稿を接続することです。新しい投稿を聞きに行くと、データベースから投稿を取得できません:
具体的には、サブスクライブした PostsChannel が適切な ID で呼び出されますが、投稿を取得しようとすると、次のようになります。
何が起こっても常に null を返します。つまり、100% 存在しているにもかかわらず、DB から Post をフェッチできません。
壁にすでにいくつかの投稿がある場合、それらは正常に接続できます。投稿が作成され、ActionCable を介してブロードキャストされた場合にのみ、DB で見つけることができません。ページをリロードすると、作成したばかりの投稿が機能します。新しくブロードキャストされた投稿がデータベースで見つからない理由がわからない
bundler - Rails 5 ベータ バンドルの更新に gem の競合があります
Rails を 5.0.0.beta1 に更新しようとしていますが、次のようなエラーが表示されます。
を含めminitest-rails-capybara
、Gemfile でバージョンが明示的に設定されている gem はありません。アプリにファイルがありませんGemfile.lock
(アップグレード ブランチにある既存のファイルを削除しました)。
minitest-rails-capybara
現在の gemset (およびその他) の最新バージョンです。なぜこのエラーが発生するのですか?
編集新しいアプリを開始した後でも、( rails new
) これらの行を Gemfile に追加すると、上記のエラーが発生します。
バージョン:
- ルビー: 2.3.0
- バンドル: 1.11.2
- 宝石: 2.5.1
ruby-on-rails - rails5 で rails_admin を使用中にエラーが発生しました
rails5 アプリケーションで rails_admin を使用しようとしています。rails_admin 0.8.1 は動作しませんでした。
Bundler は gem "rails" の互換性のあるバージョンを見つけられませんでした: スナップショット (Gemfile.lock): rails (= 5.0.0.beta1)
Gemfile: rails (< 5.1, >= 5.0.0.beta1)
次に、github から最新のコードを使用してみました
gem 'rails_admin', git: ' https://github.com/sferik/rails_admin.git '
現在、ラックの依存関係が競合しています。
スナップショット (Gemfile.lock): ラック (= 2.0.0.alpha)
Gemfile: rails (< 5.1, >= 5.0.0.beta1) は 5.0.0.beta1 に解決され、actionmailer (= 5.0.0.beta1) は actionpack に依存する 5.0.0.beta1 に解決されました。 (= 5.0.0.beta1) は、ラック (~> 2.x) に依存する 5.0.0.beta1 に解決されました。
rails5を使い始めるのは時期尚早ですか?rails4.2に戻すべきですか?
ruby-on-rails - Rails - formobject で現在作成されている要素の ID を取得する
フォーム オブジェクトによって保存された、現在作成されているモデル レコードの ID を取得する方法を知りたいです。私は持っている:
次のような意味のあるものに変更したいと思います:\
nginx - RoR 5.0.0 ActionCable wss WebSocket ハンドシェイク: 予期しない応答コード: 301
こんにちは、ror 5.0.0 ベータ版 (プーマを使用) を使用してプロダクション モードで簡単なチャットを提供しようとしています (localhost では問題ありません)。
これは私のNginx構成です:
これはconfig/redis/cable.yml です
プロダクション: URL: redis://localhost:6379/1
開発: URL: redis://localhost:6379/2
テスト: URL: redis://localhost:6379/3
およびconfig/environments/production.rb
そして、これは私が受け取っているエラーです:
application-[...].js:27 'wss://mydomain/cable' への WebSocket 接続に失敗しました: WebSocket ハンドシェイク中のエラー: 予期しない応答コード: 301
任意のヒント?:) ありがとう
ruby-on-rails - Rails コンソール エラー: nil:NilClass の未定義メソッド「each」(NoMethodError)
Rails アプリケーションのルート ディレクトリで実行しようとするrails console
と、次のエラーが発生します。
nil:NilClass の未定義メソッド「each」 (NoMethodError)
完全なスタック トレース:
railtie.rb
Rails libのファイル内のこのブロックにエラーを追跡しました。
これは、次のブロックから取得されます。
gemをアンインストールし、spring
gem をインストールしましたrubocop
。それ以外の場合、myGemfile
にはデフォルトの gem が含まれます。
私のRubyバージョンは、Rails 5で推奨され2.2.3
ているバージョンより上です。2.2.2
Ruby バージョン: 2.2.3p173
Rails バージョン: 5.0.0.beta1.1
RVM バージョン: 1.26.11
ruby-on-rails - Rails: Date をフォーム パラメータから ActiveModel オブジェクトにマッピングする
ActiveModel を含み、2 つの日付で構成されるフィルター クラスがあります。
そのモデルは、次のような形式にレンダリングされます。
問題は、フォームが送信されると、このパラメーターがコントローラーに送信されることです。
コントローラーのパラメーターを介して値を抽出します。
params[:meal_filter]
をMealFilter
クラスに割り当てると@filter = MealFilter.new(meal_filter_params)
、日付フィールドが正しく更新されません。1i 、2i、3iの部分が日付に正しく割り当てられていないようです。
ただし、ActiveRecord
クラスを使用する場合、これは正常に機能します。
私はいくつかのインクルードを見逃していますか? ではない場合、この魔法のマッピングが実装されている場所を知っている人はいActiveModel::Model
ますか?
ruby-on-rails - アクションケーブル。Redis の再接続に失敗しました
RoR 5.0 ベータ版と actionCable をテストしているときに、コンソールでこのエラーが発生しました。
[ActionCable] Redis reconnect failed.e
その後、HomeBrew を使用してこの Redis をインストールします。しかし、何も起こりません。修正方法は?
OS X. Rails 5 ベータ版。