問題タブ [ruby-on-rails]

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

ruby-on-rails - Rails のモデル、ビュー、コントローラー、ヘルパー: 何がどこにあるのか?

Ruby on Rails 開発 (一般的には MVC) で、ロジックをどこに配置するかについて、どのようなクイック ルールに従う必要がありますか。

Don't put that thereではなくDo put this hereで肯定的に答えてください。

0 投票する
7 に答える
8587 参照

ruby-on-rails - Ruby on Railsで実行中にコントローラ変数の値を決定する方法は?

実行中にコントローラ変数の値を決定する最良の方法は何ですか?

たとえば、コードにブレークを挿入して、変数の値を画面 (またはログ) に出力する方法はありますか?

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

javascript - onClickイベントでループを作成するにはどうすればよいですか?

onClickフォームを複数回送信し、複数選択フィールドで選択した項目を繰り返し、それぞれに1回送信するイベント を作成したいと思います。

ループをコーディングするにはどうすればよいですか?

私はRubyonRailsで作業してremote_function()おり、ajax呼び出し用のJavaScriptを生成するために使用しています。

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

ruby-on-rails - Ruby on Rails用の優れた管理ジェネレーターはありますか?

私の現在のプロジェクトはRailsにあります。Symfony(PHP)とDjango(Python)のバックグラウンドから来ており、どちらも優れた管理ジェネレーターを備えています。Railsにはこのようなものがないようです。

SymfonyやDjangoに慣れていない人のために、どちらもモデルのメタデータを指定して、一般的なCRUD操作を実行するための管理インターフェースを自動的に(動的に)生成することができます。数行のコマンドまたはコード行だけでイントラネット全体を作成できます。それらは見栄えが良く、管理者のニーズの99%に十分に拡張可能です。

Railsに似たものを探しましたが、すべてのプロジェクトにアクティビティがないか、ずっと前に死んでしまいました。足場以外に、Railsアプリのイントラネット/管理サイトを生成するものはありますか?

0 投票する
4 に答える
1256 参照

ruby-on-rails - Rails モデル バリデーターは、以前の移行を中断します

次の手順を含む、Rails アプリで一連の移行があります。

  1. 「ユーザー」モデルの基本バージョンを作成する
  2. このモデルのインスタンスを作成します。ログインして使用を開始できるように、システムに少なくとも 1 人の初期ユーザーが必要です。
  3. 「ユーザー」モデルを更新して、新しいフィールド/列を追加します。

現在、この新しいフィールド/列で「validates_inclusion_of」を使用しています。これは、これらの移行が適用されたデータベースを既に持っていた最初の開発マシンでうまく機能しました。ただし、新しいマシンに移動してすべての移行を実行すると、移行 3 のフィールドがまだモデル クラスに追加されていないため、validates_inclusion_of が失敗するため、ステップ 2 が失敗します。

回避策として、「validates_...」行をコメントアウトし、移行を実行してコメントを外すことができますが、それは良くありません。

すべての列が追加された後、ユーザーの作成 (ステップ 2) が最後になるように、移行の順序を変更することをお勧めします。

私はレールの初心者ですが、この状況を処理するための好ましい方法は何かを尋ねたいと思いました:)

0 投票する
13 に答える
34989 参照

ruby-on-rails - Railsアプリケーションに初期データを入力する方法(およびかどうか)

ユーザーがログインしなければならないRailsアプリケーションがあります。したがって、アプリケーションを使用できるようにするには、最初のユーザーがログインするために、システムに1人の初期ユーザーが必要です(その後、ユーザーは後続のユーザーを作成できます)。これまで、移行を使用してデータベースに特別なユーザーを追加してきました。

この質問をした後、新しい開発マシンで新しいデータベースをセットアップするには、移行を実行するのではなく、db:schema:loadを使用する必要があるようです。残念ながら、これにはデータを挿入する移行は含まれておらず、テーブルやキーなどを設定する移行のみが含まれているようです。

私の質問は、この状況を処理するための最良の方法は何ですか?

  1. d:s:lにデータ挿入の移行を含める方法はありますか?
  2. この方法でデータを挿入するために移行をまったく使用しないでください。
  3. データベースにデータを事前に入力するべきではありませんか?ユーザーがいない場合を適切に処理し、アプリケーション内から最初のユーザーアカウントをライブで作成できるように、アプリケーションコードを更新する必要がありますか?
  4. 他のオプションはありますか?:)
0 投票する
7 に答える
4851 参照

ruby-on-rails - Ruby on Rails でのモデル設計のベスト プラクティス

RoR チュートリアルでは、ORM が機能するようにテーブルごとに 1 つのモデルを想定しています。私のDBスキーマには、概念的に5つの機能グループに分割された約70のテーブルがあります(たとえば、特定のテーブルは1つの機能グループにのみ存在し、異なるグループのテーブル間の関係は最小限に抑えられます。)したがって、概念グループごとにモデルを設計する必要があります、または単に 70 の Rails モデルを用意して、グループ化を「概念的」のままにする必要がありますか? ありがとう!

0 投票する
4 に答える
2679 参照

ruby-on-rails - RailsアプリでのXMLファイルのインポート、UTF-16エンコーディングの問題

Ruby on RailsアプリケーションのWebページを介してXMLファイルをインポートしようとしています。コードのrubyビューコードは次のとおりです(コードを読みやすくするためにHTMLレイアウトタグを削除しました)

次のHTMLフォームの結果

'fmfiles_controller'のForm_Import_DDRメソッドは、REXMLを使用してXMLドキュメントを読み取るという大変な作業を行うコードです。コードは次のとおりです

そして、のすべての異なるXML要素の読み取りを続行します。

Mac OS X 10.5.4の開発環境、サイトDB、同じマシンのブラウザでRails2.1.0とMongrel1.1.5を使用しています。

私の質問はこれです。このプロセス全体は、UTF-8を文字エンコードするXMLドキュメントを読み取る場合は正常に機能しますが、XMLファイルがUTF-16の場合は失敗します。これが発生する理由と、停止する方法を知っている人はいますか?

以下にデバッガコンソールからのエラー出力を含めました。この出力を取得するのに約5分かかり、ブラウザは「ページを開くことができませんでした」という次の出力の前にタイムアウトします。

0 投票する
5 に答える
859 参照

ruby-on-rails - レールモデルは、スキニーコントローラーのために他のモデルに関係する必要がありますか?

ビジネスロジックがコントローラーではなくモデルに属していることをどこでも読みましたが、制限はどこにありますか? 私は個人会計アプリケーションをいじっています。

操作を作成するとき、対応するエントリが作成され、アカウントにリンクされている場合にのみ有効です。

基本的な操作の場合にユーザーに表示されるフォームは、エントリの詳細を非表示にするために簡素化されました。アカ​​ウントは、ユーザーが要求した操作の種類に応じて 5 つのデフォルトから選択されます (アカウントの初期化 -> エクイティからアカウントへ、資産の支出 - >費用、収益の獲得 -> 資産、負債の借入 -> 資産、負債の支払い -> 負債 ...) デフォルト値から作成されたエントリが必要です。

また、より複雑な操作 (2 つ以上のエントリ) を作成できるようにしたいと考えています。この 2 番目のユース ケースでは、追加の複雑さが明らかになる別のフォームを使用します。

最適なフォームはどれですか? 今のところ、SimpleOperationController で上記のコードを使用するか、Operation クラスで新しいメソッドを定義して、Operation.new_simple_operation(params[:operation]) を呼び出せるようにします。

Operation クラスから Entry オブジェクトを実際に作成して操作することは、関心の分離を壊していませんか?

私は自分のねじれた会計原則についてアドバイスを求めているわけではありません :)

編集 - 私は自分自身をはっきりと表現していないようです。検証についてはあまり気にしていません。私は、作成ロジックコードがどこに行くべきかについてもっと心配しています:

コントローラーでの操作がspendと呼ばれると仮定すると、spendを使用する場合、paramsハッシュには金額、日付、説明が含まれます。借方勘定と貸方勘定は、呼び出されたアクションから派生しますが、その後、すべてのオブジェクトを作成する必要があります。あったほうがいいでしょうか

または、上記を次のようにする Operation のメソッドを作成します

これは間違いなく、はるかに薄いコントローラーとより太いモデルを提供しますが、モデルは他のモデルのインスタンスを作成して保存します。これが私の問題です。

0 投票する
4 に答える
12088 参照

ruby-on-rails - Rails、Restful Authentication & RSpec - 認証が必要な新しいモデルをテストする方法

Restful Authentication と RSpec を含む基本アプリであるBortを使用して、学習アプリケーションを作成しました。私はそれを起動して実行し、ユーザーが何かを行う前にログインする必要がある新しいオブジェクトを追加しました(before_filter :login_requiredコントローラーで)。[編集: またhas_many、新しいクラスのユーザーとユーザーだけがそれを見ることができるはずであることにも言及する必要があります。]

多数のデフォルト テストを作成した Rspec のジェネレーターを使用して、新しいモデル/コントローラーを作成しました。それらが存在しない場合はすべて合格しますがbefore_filter、予想されるように、 が配置されると、いくつかは失敗しbefore_filterます。

ログインしているユーザーがいる/いないかのように、生成されたテストを実行するにはどうすればよいですか? ログインしていない一致のバッチ全体が必要ですか - リダイレクト テストはありますか? 私はそれがある種のモッキングまたはフィクスチャ手法であると想定していますが、私はRSpecに不慣れで少し漂流しています。優れた RSpec チュートリアル リンクも歓迎します。