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

Ruby on Railsは、Rubyで記述されたオープンソースのWeb開発フレームワークです。Ruby on Railsは、構成よりも慣例の原則に従っているため、生産性を維持するために再発明する必要がありません。このタグはRails 3固有の質問にのみ使用し、それらの質問にもタグ付けします[ruby-on-rails]。

3
Railsのhas_one / has_manyの:sourceオプションを理解する
関連付けの:sourceオプションを理解するのを手伝ってくださいhas_one/has_many :through。Rails APIの説明は、私にはほとんど意味がありません。 「指定で使用されるソース関連名has_many :through => :queries。名前は協会から推測することができない場合にのみ、それを使用するには。has_many :subscribers, :through => :subscriptionsどちらかを探します:subscribersか:subscriberでSubscriptionない限り、:source与えられています。」


5
Ruby on Railsでセッターメソッドをオーバーライドする正しい方法は何ですか?
Ruby on Rails 3.2.2を使用していますが、次の方法がmyクラス属性のセッターメソッドをオーバーライドする「適切な」/「正しい」/「確実な」方法であるかどうかを知りたいです。 attr_accessible :attribute_name def attribute_name=(value) ... # Some custom operation. self[:attribute_name] = value end 上記のコードは期待どおりに動作するようです。しかし、上記のコードを使用することで、将来的に問題が発生するかどうか、少なくとも、Ruby on Railsで「予想されるはずの問題」/「発生する可能性のある問題」について知りたいと思います。それがセッターメソッドをオーバーライドする正しい方法でない場合、正しい方法は何ですか? 注:コードを使用する場合 attr_accessible :attribute_name def attribute_name=(value) ... # Some custom operation. self.attribute_name = value end 次のエラーが発生します。 SystemStackError (stack level too deep): actionpack (3.2.2) lib/action_dispatch/middleware/reloader.rb:70

14
ActiveRecord ORクエリ
Rails 3のActiveRecordでORクエリを行う方法を教えてください。私が見つけたすべての例には、ANDクエリしかありません。 編集:ORメソッドはRails 5以降で使用できます。ActiveRecord:: QueryMethodsを参照してください



7
rake db:schema:loadと移行
ここで非常に単純な質問-アプリが複雑になるにつれて移行が遅くなり面倒になる可能性がある場合rake db:schema:load、代わりに呼び出すクリーナーがはるかに多い場合、なぜ移行が存在するのですか? 上記の答えがバージョン管理(データベースへの変更の段階的な記録)に移行が使用されるというものである場合、アプリがより複雑になりrake db:schema:load、代わりに使用されるにつれて、アプリは主要機能を維持し続けますか? 注意: この質問への回答から:本番サーバー上のrake db:schema:load データを削除するので、使用するときは注意してください。

12
ハッシュをきれいに印刷する最良の方法
ネストされた配列とハッシュを持つ大きなハッシュがあります。簡単に印刷して、ユーザーに「読み取れる」ようにしたい。 私はto_yamlのようなものにしたいと思います-それはかなり読みやすいですが-それでもあまりにも技術的に見えます。 最終的には、これらのデータチャンクを読み取ってきれいにフォーマットする必要があるエンドユーザーになります。 助言がありますか?


2
RailsとPostgreSQLでタイムゾーンを完全に無視する
RailsとPostgresで日付と時刻を処理していて、この問題が発生しています。 データベースはUTCです。 ユーザーはRailsアプリで選択したタイムゾーンを設定しますが、時間を比較するためにユーザーのローカル時間を取得するときにのみ使用されます。 ユーザーは時間を保存します。たとえば、2012年3月17日午後7時です。タイムゾーン変換やタイムゾーンを保存したくありません。日付と時刻を保存したいだけです。これにより、ユーザーがタイムゾーンを変更した場合でも、2012年3月17日午後7時と表示されます。 ユーザーが指定したタイムゾーンのみを使用して、ユーザーのローカルタイムゾーンの現在時刻の「前」または「後」のレコードを取得します。 私は現在「タイムゾーンなしのタイムスタンプ」を使用していますが、レコードを取得すると、レール(?)がそれらをアプリのタイムゾーンに変換しますが、これは不要です。 Appointment.first.time => Fri, 02 Mar 2012 19:00:00 UTC +00:00 データベースのレコードはUTCとして出力されるように見えるので、私のハックは現在の時刻を取得し、 'Date.strptime(str、 "%m /%d /%Y")'でタイムゾーンを削除してから、それでクエリ: .where("time >= ?", date_start) 周りのタイムゾーンを無視するより簡単な方法があるはずです。何か案は?

7
既存のRails列のブール値に:default => trueを追加する
既存の列にデフォルトのブール値を追加することについて、SOでいくつかの質問(つまりこれ)を見ました。だから私はchange_column提案を試みましたが、私はそれを正しく行ってはなりません。 私は試した: $ change_column :profiles, :show_attribute, :boolean, :default => true どっちが帰る -bash: change_column: command not found 次に実行しました: $ rails g change_column :profiles, :show_attribute, :boolean, :default => true ...そして $ rails change_column :profiles, :show_attribute, :boolean, :default => true その後、実行されましたrake db:migrateが、の価値は:show_attribute残りましたnil。上記で参照した質問では、PostgreSQLでは手動で更新する必要があると記載されています。私はPostgreSQLを使用しているので、create_profiles移行に以下を追加しました。 t.boolean :show_attribute, :default => true 私がここで間違っていることを誰かが教えてもらえますか?

10
Rails 3アプリでページ固有のJavaScriptを追加する最良の方法は?
Rails 3には、かなりクールないくつかの控えめなJavaScriptがあります。 しかし、私は特定のページに追加のJavaScriptを含めるための最良の方法は何かと思っていました。 たとえば、以前に行った可能性がある場合: <%= f.radio_button :rating, 'positive', :onclick => "$('some_div').show();" %> 次のようにして、目立たなくすることができます <%= f.radio_button :rating, 'positive' %> # then in some other file $('user_rating_positive').click(function() { $('some_div').show(); } だから私は私の質問がそのJavaScriptをどこに/どのように含めるかだと思いますか?application.jsこのJavaScriptはこの1つのビューにのみ適用できるため、ファイルをいっぱいにしたくありません。どういうわけか各ページのカスタムJavaScriptファイルを含めるか、ヘッダーが検索するインスタンス変数に貼り付けますか?


11
Railsでユニークなトークンを作成する最良の方法は?
これが私が使っているものです。トークンは、推測のために必ずしも聞かれる必要はありません。それは何よりも短いURL識別子のようなものであり、私はそれを短く保ちたいです。私はオンラインで見つけたいくつかの例に従いましたが、衝突が発生した場合、以下のコードでトークンが再作成されると思いますが、確信が持てません。しかし、これは縁のあたりが少し荒く感じられるので、より良い提案を見つけたいと思っています。 def self.create_token random_number = SecureRandom.hex(3) "1X#{random_number}" while Tracker.find_by_token("1X#{random_number}") != nil random_number = SecureRandom.hex(3) "1X#{random_number}" end "1X#{random_number}" end トークンのデータベース列は一意のインデックスでありvalidates_uniqueness_of :token、モデルでも使用していますが、これらはアプリでのユーザーのアクションに基づいて自動的にバッチで作成されるため(注文してトークンを購入します)、それはアプリにエラーをスローさせることはできません。 また、衝突の可能性を減らすために、最後に別の文字列を追加することもできます。これは、時間に基づいて生成されたものなどですが、トークンが長くなりすぎないようにします。

7
Rails 3.1と画像アセット
adminテーマのすべての画像を、adminというフォルダー内のアセットフォルダーに配置しました。次に、通常のようにリンクします。 # Ruby image_tag "admin/file.jpg" ..... #CSS .logo{ background:url('/assets/images/admin/logo.png'); ご参考までに。テストのためだけに、アセットをコンパイルしていないので、asset_pathタグ​​はまだ使用していません。 これまでのところ、画像の更新を決定するまでは問題ありません。一部の色を置き換えましたが、再読み込み時に新しいスタイルの画像が表示されません。ブラウザで直接画像を表示すると、まだ古い画像が表示されています。さらに一歩進んで、管理イメージフォルダーを破棄しました。しかし、すべての画像がまだ表示されているのに問題はありません。そして、はい、キャッシュをクリアして、複数のブラウザで試しました。 何らかの画像キャッシングが行われていますか?これは、powを使用してページを提供するローカル開発です。 画像フォルダ全体を破棄しても、画像は引き続き提供されます。 何か不足していますか?

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