問題タブ [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.

0 投票する
1 に答える
359 参照

ruby-on-rails - Rails 5: ActionCable と db が同期されていない

ActionCable のセットアップ、チャネルのリッスン、リクエストの認証などを正常に行うことができました。ただし、作成直後にチャネルに接続しようとすると、奇妙なバグが発生します (説明が難しい、以下を参照)。

セットアップがあり、プロファイルには壁があり、壁には多くの投稿が含まれています。各投稿には独自のチャンネルがあり、ウォール自体にも独自のチャンネルがあります。壁に投稿が作成されると、ActionCable を介して更新されます。

単純化しましたが、これは意図したとおりに機能します。新しい投稿が作成されると、ウォール チャネルがトリガーされ、クライアントは投稿を受け取り、すべてが有効になります。

問題は、ブロードキャストされた新しい投稿を接続することです。新しい投稿を聞きに行くと、データベースから投稿を取得できません:

具体的には、サブスクライブした PostsChannel が適切な ID で呼び出されますが、投稿を取得しようとすると、次のようになります。

何が起こっても常に null を返します。つまり、100% 存在しているにもかかわらず、DB から Post をフェッチできません。

壁にすでにいくつかの投稿がある場合、それらは正常に接続できます。投稿が作成され、ActionCable を介してブロードキャストされた場合にのみ、DB で見つけることができません。ページをリロードすると、作成したばかりの投稿が機能します。新しくブロードキャストされた投稿がデータベースで見つからない理由がわからない

0 投票する
1 に答える
237 参照

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
0 投票する
2 に答える
760 参照

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に戻すべきですか?

0 投票する
1 に答える
372 参照

ruby-on-rails - Rails - formobject で現在作成されている要素の ID を取得する

フォーム オブジェクトによって保存された、現在作成されているモデル レコードの ID を取得する方法を知りたいです。私は持っている:

次のような意味のあるものに変更したいと思います:\

0 投票する
3 に答える
5847 参照

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

任意のヒント?:) ありがとう

0 投票する
3 に答える
1712 参照

ruby-on-rails - Rails コンソール エラー: nil:NilClass の未定義メソッド「each」(NoMethodError)

Rails アプリケーションのルート ディレクトリで実行しようとするrails consoleと、次のエラーが発生します。

nil:NilClass の未定義メソッド「each」 (NoMethodError)

完全なスタック トレース:

railtie.rbRails libのファイル内のこのブロックにエラーを追跡しました。

これは、次のブロックから取得されます。

gemをアンインストールし、springgem をインストールしました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

0 投票する
3 に答える
1244 参照

ruby-on-rails - Rails: Date をフォーム パラメータから ActiveModel オブジェクトにマッピングする

ActiveModel を含み、2 つの日付で構成されるフィルター クラスがあります。

そのモデルは、次のような形式にレンダリングされます。

問題は、フォームが送信されると、このパラメーターがコントローラーに送信されることです。

コントローラーのパラメーターを介して値を抽出します。

params[:meal_filter]MealFilterクラスに割り当てると@filter = MealFilter.new(meal_filter_params)、日付フィールドが正しく更新されません。1i 、2i、3iの部分が日付に正しく割り当てられていないようです。

ただし、ActiveRecordクラスを使用する場合、これは正常に機能します。

私はいくつかのインクルードを見逃していますか? ではない場合、この魔法のマッピングが実装されている場所を知っている人はいActiveModel::Modelますか?

0 投票する
1 に答える
580 参照

ruby-on-rails - アクションケーブル。Redis の再接続に失敗しました

RoR 5.0 ベータ版と actionCable をテストしているときに、コンソールでこのエラーが発生しました。

[ActionCable] Redis reconnect failed.e

その後、HomeBrew を使用してこの Redis をインストールします。しかし、何も起こりません。修正方法は?

OS X. Rails 5 ベータ版。