問題タブ [ruby-on-rails-4]

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

ruby-on-rails - Rails ActiveSupport:Concern と Private メソッド

これは、レールの懸念に関する素晴らしいアイデアです: http://37signals.com/svn/posts/3372-put-chubby-models-on-a-diet-with-concerns

また、パブリック API の一部ではない非常に小さなメソッドを作成することもお勧めします。懸念を使用しないと、それらは ruby​​ クラスのプライベート メソッドになります。

Rails ActiveSupport::Concern モジュール内にプライベート メソッドを作成することは理にかなっていますか? もしそうなら、private は通常のインスタンス メソッドと懸念定義のクラス メソッドの両方で機能しますか?

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

ruby - Railsはradio_button値を取得します

フォームからラジオボタンの値を取得しようとしています。

コントローラでパラメータを確認すると、次のようになります。

ラジオボタンがクリックされない場合、取得する値はnullになります。(デフォルト値を指定したのに、なぜこれがnullになるのですか?)

ラジオボタンがクリックされた場合、Railsロガーは私にfalseを与えます。

false/trueではなくnull/falseを切り替えています。何か案は?

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

ruby-on-rails - 新しい Rails 4 アプリが「rails」コマンドを認識しないため、「rails new」を使用するように要求されます

rails newRails マスター ブランチのクローンからコマンドを使用して、新しいアプリケーションを作成することに成功しました。アプリは問題ないように見えますが、Rails 4 であることは間違いありません。しかし、他のrailsコマンドを実行しようとすると、次のプロンプトが表示されます。

railsbundle exec rails、およびを試しましたがbin/rails、すべて同じプロンプトが表示されます。新しい Rails 4 アプリを作成するための私の手順は次のとおりです。

  1. Rails マスター ブランチをローカル マシンに複製する
  2. 新しい rvm gemset を作成して使用する (1.9.3)
  3. 走るrails/railties/bin/rails new myapp --edge -T --skip-index-html
  4. cd myapp実行bundle installbundle updateて念のため
  5. 任意のrailsコマンドを実行

私は何を間違っていますか?rvm-prompt正しい宝石セットを使用していることを示唆しています。私が気づいたことの 1 つは、Gemfile から jbuilder を削除して を実行しbundle updateても、gem list. ここで私のrvmに何か問題がありますか?

rails-v出力は「Rails 4.0.0.beta」です

0 投票する
2 に答える
451 参照

ruby-on-rails - ruby 開発キットのトラブル

rubyinstaller.org/downloads から入手した DevKit で問題が発生しています。https://github.com/oneclick/rubyinstaller/wiki/development-kitの指示に従っています。実行してインストールをテストするとgem install rdiscount --platform=ruby、次のようになります。

さらに情報が必要な場合はお知らせください。ありがとう!

0 投票する
2 に答える
1711 参照

ruby-on-rails - Deviseでログインせずに、ユーザーのパスワードが正しいかどうかを確認するにはどうすればよいですか?

私は、ユーザーが特定のコンピューターに入力することusernameでタイムレコーダーを効果的にパンチするタイムレコーダーシステムをプログラミングしています。passwordタイムレコーダーのユーザーが最初にログインします。入力したユーザーが正しいかどうかusernameを確認して、ユーザーが表示されたことを登録する必要があります。passwordどうすればそれを行うことができDeviseますか?

実際にログインしたくはありません。彼らが本人であるかどうかを確認するだけです。タイムレコーダーユーザーは、常にログインしている唯一のユーザーです。

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

ruby-on-rails-3 - Turbolinks vs JS MVC フレームワーク?

フレームワークとして EmberJS を適用し、Rails 3.2 を使用して Rails 4.0 への移行を検討しています。Rails コミュニティによって、ターボリンクについて多くのプッシュが行われています。一方で、私たちのサイトはクライアント側のフレームワークでうまく機能します。また、EmberJS は、カスタム コードが必要な場所でカスタム コードを作成するための適切なサポートを提供します。

私の質問は、人々がターボリンクを動的なページを作成する方法としてどのように認識しているかです。暗黙のうちにターボリンクに沿って進んでいるということは、可能な限りリーンな Javascript が必要であることを意味しています (つまり、JS フレームワークは冗長なままになっています)。では、JS フレームワークの成長/サポートはどのように見られ、ターボリンクは事実上のものになるのでしょうか。

ターボリンクのスケールアップを開始する適切な時期はありますか。また、適切なリファレンスは何ですか。

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

ruby-on-rails - Rails4で「バンドルインストール--デプロイメント」はどのように機能しますか

bundle install --deploymentすべてのgemをに分離するために使用される本番環境でのgem依存関係管理用vendor/bundle。レール4の時点で、vendorディレクトリは削除されています。フラグはどのように--deployment機能しますか?このオプションも削除されますか?

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

ruby-on-rails - RSpec を使用して Rails 4 で Mass Assignment をテストする方法

名前、電子メール、および管理者ブール値を持つRails 4の単純なユーザーモデルが与えられた場合、RSpecを使用して大量割り当てをテストするための最良のアプローチは何ですか?

ユーザーコントローラーは次のとおりです。

これをテストするための2つの異なる試行:

user_spec.rb で

または users_controller_spec.rb で

どちらも機能しません - 前者は admin を true に設定してユーザーを作成するだけです (テストに失敗します) - おそらくこれは strong_parameters をバイパスします。後者は機能しますが、user_params メソッドがプライベートでない場合のみです。(公式ドキュメントでは、プライベートに設定することを推奨しています。注 - user_spec で MassAssignment エラーを監視しても機能しません (エラーは発生しません)。

注 - 実際には、ビューでユーザーを管理者に設定すると正しく機能します。管理者属性は除外され、すべて問題ありませんが、テストでこれが適切に機能することを本当に望んでいます。

別の提案は、user_spec.rb で shoulda-matchers gem を使用することです。

(これも機能しません)、次を与えます:

(このエラーは、shoulda-matchers がまだ Rails 4 に対応していないことが原因であると思います)。

前もって感謝します!

0 投票する
12 に答える
35562 参照

ruby-on-rails - Rails Observer 4.0 の代替案

Observersが Rails 4.0 から正式に削除されたため、他の開発者が代わりに何を使用しているのか気になります。(抽出された gem を使用する場合を除きます。) オブザーバーは確かに悪用され、扱いにくくなる可能性がありましたが、有益なキャッシュのクリア以外にも多くのユースケースがありました。

たとえば、モデルへの変更を追跡する必要があるアプリケーションを考えてみましょう。オブザーバーは、モデル A の変更を簡単に監視し、それらの変更をモデル B でデータベースに記録できます。複数のモデルにわたる変化を監視したい場合は、1 つのオブザーバーで処理できます。

Rails 4 では、他の開発者が Observer の代わりにどのような戦略を使用してその機能を再作成しているのか興味があります。

個人的には、これらの変更が各モデル コントローラーの create/update/delete メソッドで追跡される、一種の "fat controller" 実装に傾倒しています。各コントローラーの動作が少し肥大化しますが、すべてのコードが 1 か所にあるため、読みやすさと理解に役立ちます。欠点は、非常によく似たコードが複数のコントローラーに散らばっていることです。そのコードをヘルパー メソッドに抽出することはオプションですが、それでも、あちこちに散らばっているこれらのメソッドへの呼び出しが残っています。世界の終わりではありませんが、「スキニーコントローラー」の精神でもありません.

ActiveRecord コールバックも考えられるオプションですが、個人的には好きではありません。これは、2 つの異なるモデルを密接に結びつける傾向があるためです。

では、Rails 4 のノー オブザーバーの世界で、別のレコードが作成/更新/破棄された後に新しいレコードを作成する必要がある場合、どのデザイン パターンを使用しますか? ファット コントローラ、ActiveRecord コールバック、またはまったく別のものですか?

ありがとうございました。

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

ruby - Rubyでスレッドセーフでないものを知る方法は?

Rails 4以降では、デフォルトですべてをスレッド環境で実行する必要があります。これが意味することは、私たちが書く すべてのコードと、私たちが使用するすべての宝石は、threadsafe

だから、私はこれについていくつか質問があります:

  1. Ruby/Railsでスレッドセーフではないものは何ですか? vs ruby​​/railsでスレッドセーフとは何ですか?
  2. スレッドセーフまたはその逆であること知られている宝石のリストはありますか?
  3. スレッドセーフではないコードの一般的なパターンのリストはあります@result ||= some_methodか?
  4. などのRuby langコアのデータ構造はHashスレッドセーフですか?
  5. GVL/GILを除いて一度に 1 つの Ruby スレッドしか実行できないことを意味するMRI ではIO、スレッドセーフな変更は私たちに影響を与えますか?