問題タブ [rails-models]

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 に答える
297 参照

sql - Ruby on rails 3 - 多くのモデルを結合して、直接関係のない別のモデルの属性を使用して 1 つのモデルのフィールドを更新する

別のモデルの値を使用して 1 つのモデルの属性を更新しようとすると問題が発生しますが、これら 2 つのモデルは関連していません。

私のモデルは次のとおりです。

ご覧のとおり、「DetailPurchase」は「注文」に属していますが、間接的な方法です。また、「OrderDetail」は「Order」に直接属します。

「DetailPurchase」の商品の属性「quantity」を使用して、「OrderDetail」の商品の属性「quantity」を更新する必要があります。

アイデアは、「新しい」 OrderDetail.quantity = 「古い」 OrderDeatil.quantity - DetailPurchase.quantity です(明らかに、product_idは同じでなければなりません)

したがって、「レールの方法」(「Model.find()」、「Model.where()」、「Model.update_attribute()」) を使用してクエリを「作成」する方法、または単に使用する方法がわかりません。生のSQLクエリ(ちなみに、生のSQLクエリの書き方や実行方法がわかりません)

おすすめは何ですか?ありがとう

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

ruby-on-rails - 関連モデルの order by を使用してモデルを取得する方法は?

モデル A とモデル B があります。このための検索関数を書くことは可能ですか?

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

ruby-on-rails - Routes.rb ファイルになくても、ルートが一致しません。ヘルプ?

これはstackoverflowに投稿された最初の質問です。私はコーディングを始めたばかりで、過去 3 か月間 Ruby on Rails を学んでいます。私のコードにはいくつか問題がある可能性がありますが、これで終わりです。

基本的に、私はユーザーに投稿させようとしています。私は登録にDeviseを使用していますが、すべてうまくいきます。しかし、ヘッダービューで「投稿を作成」へのリンクを作成すると、一致するルートがないことがわかります => 存在すると思っていても。私が信じている小さな何かが欠けていますが、それを正しくするために行ったすべてのデバッグで、途中で何かを台無しにした可能性があると思います. 以下に、routes.rb、post_controller ファイル、レイアウト ビュー ファイルのコードを添付します。とりとめのない話で申し訳ありませんが、あまり簡潔に言えませんでした。誰かが何か間違っていると思いますか?他のコードが必要な場合はお知らせください

_header.html.erb

ルート.rb

投稿コントローラー

レーキルート

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

ruby-on-rails - Rails 3にモジュールを含める:インスタンスメソッドとクラスメソッドの両方(およびHTTPpartyを使用)。

クラスメソッドとインスタンスメソッドの両方をモジュールに入れて、そのモジュールをモデルに含める方法について考えていました。

他の例でも機能しますが、インクルードHTTPpartyを正しく配置する場所を理解するのに苦労しています。

以下は私がいる場所の詳細です:

以下を使用してユーザーモデルにアタッチすることを目的としています:Vimeoを含め、以下を呼び出すことができます:

と同様

アドバイスをいただければ幸いです。

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

ruby-on-rails - Rails CouchRestモデルのモジュールにプロパティを追加して多重継承をサポートするにはどうすればよいですか?

私のクラスでは、複数のモジュールを含めたいと思います。各モジュールは、couchDBに永続化する独自のプロパティを定義できます。

次に例を示します。

これは機能しません。「未定義のメソッド`property'」というエラーが発生しました。CouchRest :: Model :: Embeddableを追加してみましたが、モジュールでも機能しません。私が見ているすべての例は、CouchRest :: Model::Baseから拡張されています。ただし、Rubyは多重継承をサポートしていないため、このアプローチを使用することはできません。

基になるJSON形式を変更できなくなります。私の希望する形式は{"name": "tom"、 "type":"cat"}です。

どんな助けでもいただければ幸いです。ありがとう!

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

ruby-on-rails - CouchRest モデルは、_id フィールドに guid の代わりにカスタム値を使用します

CouchRest モデルの GUID の代わりにカスタム文字列値 (オブジェクトの名前など) を _id フィールドとして使用する方法があるかどうか疑問に思います。

例えば

デフォルトでは、GUID を _id フィールドとして使用します。しかし、name プロパティを _id として使用したいだけです。

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

ruby-on-rails - 移行にシーケンスを追加してモデルで使用するにはどうすればよいですか?

Customer通常の主キーとカスタムの「顧客番号」を格納するための別の列を持つ「」モデルが必要です。さらに、データベースでデフォルトの顧客番号を処理する必要があります。シーケンスを定義することがそれを行うための最良の方法だと思います。私はPostgreSQLを使用しています。私の移行を見てください:

シーケンスを追加するためのより良い「レールのような」アプローチを知っているなら、私に知らせてください。

今、私が次のようなことをすると

フィールドcustomer_noには、シーケンスの次の値(1002である必要があります)が事前に入力されていません。

シーケンスを統合する良い方法を知っていますか?または、良いプラグインはありますか?すべての答えに乾杯!

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

ruby-on-rails - 正しい設計: 投稿には 1 人のユーザー (作成者) と多数のユーザー (タグ付けされたユーザー) を含めることができます

少し行き詰まる状況があります。

投稿には (作成者として) ユーザーを含めることができ、投稿には多くのユーザーを含めることもできます (投稿には他のユーザーをタグ付けすることができるため)。

私の投稿モデルでは:

私のユーザーモデルでは:

一般的には問題なく動作しますが、投稿クエリにユーザーを含め、投稿を作成者の名前で並べ替えると、かなり行き詰まります。

正しい設計とは?おそらく Post の user_id を author_id に置き換えますか?

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

ruby-on-rails - RoR3モデルの関連付け(ゲームは2人のプレーヤーに属します)

私はRubyonRails 3を初めて使用し、単純なチェスゲームアプリケーションに取り組んでいます。次のモデルを作成する予定です。

それらがすべて持っていると仮定します:id:int:primary_key、c​​reated_at:datetime、updated_at:datetime。'password_hash'などのフィールドも省略しました。私の問題は関連付けにあり、アプリを機能させるために必要なフィールドにはあまり関係ありません。

質問:

1)ゲームを2人のプレーヤーにリンクしたいのですが、どうすればその関係を指定できますか?
2)「railsgenerate model」でgame_id:intのようなものを指定する必要がありますか、それとも関係(belongs_to:player、has_many:games)を行うときに暗黙的ですか?

ありがとう!

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

ruby-on-rails - Railsのユーザーフレンドシップモデルを構築する方法は?

Friendship (user1_id, user2_id)ユーザーをつなぐユーザーモデルを作成する必要があります。

Friendship友情は双方向であるため、ユーザー/友人ごとに2つのレコードを作成する必要はありません。

ややシンプルな方法でこれをどのように行いますか

編集私の解決策は、レコードをミラーリングすることでした: