タグ付けされた質問 「ruby-on-rails」

Ruby on Railsは、Rubyで記述されたオープンソースのフルスタックWebアプリケーションフレームワークです。これは、人気のあるMVCフレームワークモデルに準拠しており、アプリケーション開発への「構成上の規約」アプローチで知られています。

4
Railsの「validates_uniqueness_of」の大文字と小文字の区別
ここにモデルがあります(私はSQLLite3を使用しています): class School < ActiveRecord::Base validates_uniqueness_of :name end たとえば、「エール」を追加した後、「エール」を追加することはできませんが、「エール」を追加することはできます。検証の大文字と小文字を区別しないようにするにはどうすればよいですか? 編集:見つけました- アクティブレコードの検証

6
文字列が空の場合、デフォルト値を返します
多くの場合、一部の値が空白であるかどうかを確認し、そのような「データがありません」と書く必要があります。 @user.address.blank? ? "We don't know user's address" : @user.address そして、この方法で処理する必要のある20〜30のフィールドを取得すると、醜くなります。 私が作ったのはorメソッドを持つ拡張された文字列クラスです class String def or(what) self.strip.blank? ? what : self end end @user.address.or("We don't know user's address") 今では良く見えています。しかし、それはまだ生で荒いです 私の問題を解決する方が良いでしょう。ActiveSupport classヘルパーメソッドやミックスインなどを拡張または使用する方がよいでしょう。ルビーのアイデア、あなたの経験、ベストプラクティスが私に教えてくれるものは何ですか。

5
Mongodb:使用する前に知っておくべきことは?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して質問を更新し、事実と引用で回答できるようにします。 6年前休業。 この質問を改善する Ruby on Railsを使用して趣味の(収益のない)プロジェクトを始めています。Postgresqlを使用してRailsでかなりの量の開発を行ったので、正規化されたスキーマをかなりよく模倣できます。ただし、Mongrodbは光沢があり、新しく見えます。趣味のプロジェクトよりも新しい何かを試してみるのに良いことは何ですか? Mongodbを使い始めたときを思い出してください。「始めたときにそれを知っていれば!」知っていれば、最初から使用していたプラグインは何ですか。ブックマークを付けたいリファレンスは何ですか?

11
ビューではなくモデルで「number_to_currency」ヘルパーメソッドを使用する方法
次のようにto_dollarモデルでメソッドを使用したいと思います。 module JobsHelper def to_dollar(amount) if amount < 0 number_to_currency(amount.abs, :precision => 0, :format => "-%u%n") else number_to_currency(amount, :precision => 0) end end end class Job < ActiveRecord::Base include JobsHelper def details return "Only " + to_dollar(part_amount_received) + " out of " + to_dollar(price) + " received." end end 残念ながら、このnumber_to_currency方法はここでは認識されません。 …

7
Railsは魔法を作成または更新しますか?
CachedObjectキーでインデックス付けされた一般的なシリアル化されたオブジェクトを格納するというクラスがあります。このクラスにcreate_or_updateメソッドを実装してほしい。オブジェクトが見つかった場合は更新され、それ以外の場合は新しいオブジェクトが作成されます。 Railsでこれを行う方法はありますか、または独自のメソッドを記述する必要がありますか?

6
Railsでrakeタスクを実行する方法
このrakeファイルをターミナル/コンソールで実行するにはどうすればよいですか? lib / tasksの私のstatistik.rake desc "Importer statistikker" namespace :reklamer do task :iqmedier => :environment do ... end task :euroads => :environment do ... end task :mikkelsen => :environment do ... end task :orville => :environment do ... end end

4
sidekiqキューをクリアする
私は永遠に走るこの労働者を持っています。 class Worker include Sidekiq::Worker sidekiq_options queue: "infinity", retry: true def perform(params) # ... self.class.perform_in(30.seconds, params) end end 問題は、このように起動時にワーカーをロードすることです。 config/initializers/load_workers.rb Rails.application.config.after_initialize do if ENV["SIDEKIQ"] == "1" Worker.perform_async({}) end end これを使用してsidekiqを開始しますSIDEKIQ=1 sidekiq --verbose --environment production -C config/sidekiq.yml。 これは、現在実行中のワーカーと再スケジュールされているワーカーの両方で、古いワーカーが停止することを意味します。 起動時に(新しい作品をロードする直前に)これを実行しようとしましたが、うまくいきませんでした。 q = [] q += Sidekiq::RetrySet.new.select { |job| job.klass.match(/Worker/) } q += …

5
すでに存在するRailsの自動割り当てID
次のように新しいレコードを作成します。 truck = Truck.create(:name=>name, :user_id=>2) 私のデータベースには現在トラック用に数千のエンティティがありますが、いくつかのIDを利用できるように、それらのいくつかにIDを割り当てました。つまり、railsはid = 150のアイテムを作成し、正常に機能しています。しかし、それからアイテムを作成してid = 151を割り当てようとしますが、そのidはすでに存在している可能性があるため、次のエラーが表示されます。 ActiveRecord::RecordNotUnique (PG::Error: ERROR: duplicate key value violates unique constraint "companies_pkey" DETAIL: Key (id)=(151) already exists. そして、次にアクションを実行するとき、ID 152が割り当てられます。これは、その値がまだ取得されていない場合に正常に機能します。IDを割り当てる前に、IDがすでに存在するかどうかをレールで確認するにはどうすればよいですか? ありがとう! 編集する トラックIDは複製されるものです。ユーザーは既に存在し、この場合は定数です。これは、私が対処しなければならないレガシー問題です。1つのオプションとして、今回はすべてのIDをレールが自動割り当てできるようにテーブルを再作成します。他にもいくつか問題があるため、これが最良の選択であると考え始めていますが、トラックは他の多くのテーブルの外部キーであるため、これを行うための移行は非常に複雑になります。自動割り当てされたIDを使用して既存のすべての関係を維持しながら、Trailにすでに保存されている同じデータを使用してRailsが新しいテーブルを作成する簡単な方法はありますか?

9
Railsで日付を検証するにはどうすればよいですか?
Ruby on Railsでモデルの日付を検証したいのですが、モデルに到達するまでに、日、月、年の値が既に誤った日付に変換されています。 たとえば、ビューで2009年2月31日と入力した場合Model.new(params[:model])、コントローラーで使用すると、それは「2009年3月3日」に変換されます。モデルはそれを有効な日付として認識しますが、これは正しくありません。 私のモデルでこの検証を行えるようにしたいと思います。私ができる方法はありますか、それとも完全に間違っていますか? 問題を説明するこの「日付の検証」を見つけましたが、解決されませんでした。


22
PG未定義のエラー関係ユーザーは存在しません
私は以前にこの質問を見ましたが、rspecについてのみです。まだ上級者なので、まだテストは作成していませんが、ある日すぐに作成します。:P アプリにサインアップ/ログインしようとすると、このエラーが発生します。私はdeviseを使用してユーザーを作成し、omn​​iauth2を使用してgoogleでサインインしました。 これはエラーです ActiveRecord::StatementInvalid at /users/auth/google_oauth2/callback PG::UndefinedTable: ERROR: relation "users" does not exist LINE 5: WHERE a.attrelid = '"users"'::regclass ^ : SELECT a.attname, format_type(a.atttypid, a.atttypmod), pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum WHERE a.attrelid = '"users"'::regclass AND …

9
Railsのサブドメイン間でセッション(Cookie)を共有しますか?
各ユーザーが会社に属しているアプリのセットアップがあり、その会社にはサブドメインがあります(私はベースキャンプスタイルのサブドメインを使用しています)。私が直面している問題は、railsが複数のcookie(lvh.me用とsubdomain.lvh.me用)を作成し、アプリケーションでかなりの数の中断を引き起こしていることです(フラッシュメッセージがすべての要求に対して一度永続化されるなど)サインイン)。 これは/cofig/initilizers/session_store.rbファイルにあります。 AppName::Application.config.session_store :cookie_store, key: '_application_devise_session', domain: :all ドメイン::allはGoogleで見つけた標準的な回答のようですが、それは私にとってはうまくいかないようです。どんな助けでもありがたいです!


6
Railsの1回の呼び出しで複数のオブジェクトを保存する
私はレールの中で次のようなことをしているメソッドを持っています: a = Foo.new("bar") a.save b = Foo.new("baz") b.save ... x = Foo.new("123", :parent_id => a.id) x.save ... z = Foo.new("zxy", :parent_id => b.id) z.save 問題は、追加するエンティティが増えるほど、時間がかかることです。これは、すべてのレコードについてデータベースにアクセスする必要があるためと考えられます。ネストされているため、親を保存する前に子を保存できないことはわかっていますが、一度にすべての親を保存してから、すべての子を保存したいと思います。次のようなことをするのがいいでしょう: a = Foo.new("bar") b = Foo.new("baz") ... saveall(a,b,...) x = Foo.new("123", :parent_id => a.id) ... z = Foo.new("zxy", :parent_id => b.id) saveall(x,...,z) それは、たった2つのデータベースヒットでそれをすべて行います。これをレールで行う簡単な方法はありますか、それとも一度に1つずつ行うのが難しいのですか?

7
Ruby on Railsでreferrerが利用できない場合にredirect_to:backを正しく行う
に問題がありredirect_to :backます。はい、それはリファラーです。 私はよく例外を受けます (ActionController :: RedirectBackError)「このアクションへのリクエストにHTTP_REFERERが設定されていないため、redirect_to:backを正常に呼び出すことができませんでした。これがテストの場合は、request.env [\ "HTTP_REFERER \"]を指定してください。」 これはリファラーが利用できないことが原因であると思います。たとえば、最後にアクセスしたページで各アクセスにセッション変数を設定し、HTTP_REFERERが使用できない場合にこのセッション変数を使用してリダイレクトする方法はありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.