問題タブ [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.
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 は通常のインスタンス メソッドと懸念定義のクラス メソッドの両方で機能しますか?
ruby - Railsはradio_button値を取得します
フォームからラジオボタンの値を取得しようとしています。
コントローラでパラメータを確認すると、次のようになります。
ラジオボタンがクリックされない場合、取得する値はnullになります。(デフォルト値を指定したのに、なぜこれがnullになるのですか?)
ラジオボタンがクリックされた場合、Railsロガーは私にfalseを与えます。
false/trueではなくnull/falseを切り替えています。何か案は?
ruby-on-rails - 新しい Rails 4 アプリが「rails」コマンドを認識しないため、「rails new」を使用するように要求されます
rails new
Rails マスター ブランチのクローンからコマンドを使用して、新しいアプリケーションを作成することに成功しました。アプリは問題ないように見えますが、Rails 4 であることは間違いありません。しかし、他のrails
コマンドを実行しようとすると、次のプロンプトが表示されます。
rails
、bundle exec rails
、およびを試しましたがbin/rails
、すべて同じプロンプトが表示されます。新しい Rails 4 アプリを作成するための私の手順は次のとおりです。
- Rails マスター ブランチをローカル マシンに複製する
- 新しい rvm gemset を作成して使用する (1.9.3)
- 走る
rails/railties/bin/rails new myapp --edge -T --skip-index-html
cd myapp
実行bundle install
しbundle update
て念のため- 任意の
rails
コマンドを実行
私は何を間違っていますか?rvm-prompt
正しい宝石セットを使用していることを示唆しています。私が気づいたことの 1 つは、Gemfile から jbuilder を削除して を実行しbundle update
ても、gem list
. ここで私のrvmに何か問題がありますか?
rails-v
出力は「Rails 4.0.0.beta」です
ruby-on-rails - ruby 開発キットのトラブル
rubyinstaller.org/downloads から入手した DevKit で問題が発生しています。https://github.com/oneclick/rubyinstaller/wiki/development-kitの指示に従っています。実行してインストールをテストするとgem install rdiscount --platform=ruby
、次のようになります。
さらに情報が必要な場合はお知らせください。ありがとう!
ruby-on-rails - Deviseでログインせずに、ユーザーのパスワードが正しいかどうかを確認するにはどうすればよいですか?
私は、ユーザーが特定のコンピューターに入力することusername
でタイムレコーダーを効果的にパンチするタイムレコーダーシステムをプログラミングしています。password
タイムレコーダーのユーザーが最初にログインします。入力したユーザーが正しいかどうかusername
を確認して、ユーザーが表示されたことを登録する必要があります。password
どうすればそれを行うことができDevise
ますか?
実際にログインしたくはありません。彼らが本人であるかどうかを確認するだけです。タイムレコーダーユーザーは、常にログインしている唯一のユーザーです。
ruby-on-rails-3 - Turbolinks vs JS MVC フレームワーク?
フレームワークとして EmberJS を適用し、Rails 3.2 を使用して Rails 4.0 への移行を検討しています。Rails コミュニティによって、ターボリンクについて多くのプッシュが行われています。一方で、私たちのサイトはクライアント側のフレームワークでうまく機能します。また、EmberJS は、カスタム コードが必要な場所でカスタム コードを作成するための適切なサポートを提供します。
私の質問は、人々がターボリンクを動的なページを作成する方法としてどのように認識しているかです。暗黙のうちにターボリンクに沿って進んでいるということは、可能な限りリーンな Javascript が必要であることを意味しています (つまり、JS フレームワークは冗長なままになっています)。では、JS フレームワークの成長/サポートはどのように見られ、ターボリンクは事実上のものになるのでしょうか。
ターボリンクのスケールアップを開始する適切な時期はありますか。また、適切なリファレンスは何ですか。
ruby-on-rails - Rails4で「バンドルインストール--デプロイメント」はどのように機能しますか
bundle install --deployment
すべてのgemをに分離するために使用される本番環境でのgem依存関係管理用vendor/bundle
。レール4の時点で、vendor
ディレクトリは削除されています。フラグはどのように--deployment
機能しますか?このオプションも削除されますか?
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 に対応していないことが原因であると思います)。
前もって感謝します!
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 コールバック、またはまったく別のものですか?
ありがとうございました。
ruby - Rubyでスレッドセーフでないものを知る方法は?
Rails 4以降では、デフォルトですべてをスレッド環境で実行する必要があります。これが意味することは、私たちが書く すべてのコードと、私たちが使用するすべての宝石は、threadsafe
だから、私はこれについていくつか質問があります:
- Ruby/Railsでスレッドセーフではないものは何ですか? vs ruby/railsでスレッドセーフとは何ですか?
- スレッドセーフまたはその逆であることが知られている宝石のリストはありますか?
- スレッドセーフではないコードの一般的なパターンのリストはあります
@result ||= some_method
か? - などのRuby langコアのデータ構造は
Hash
スレッドセーフですか? GVL
/GIL
を除いて一度に 1 つの Ruby スレッドしか実行できないことを意味するMRI ではIO
、スレッドセーフな変更は私たちに影響を与えますか?