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

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

5
Rails 3は属性が変更されたかどうかを確認します
Rails 3で更新する前に、属性のブロックが変更されたかどうかを確認する必要があります。 street1、street2、city、state、zipcode 私は次のようなものを使用できることを知っています if @user.street1 != params[:user][:street1] then do something.... end しかし、そのコードは本当に長くなります。よりクリーンな方法はありますか?

7
Rails after_saveコールバックで変更された属性を特定しますか?
モデルの公開済み属性がfalseからtrueに変更された場合にのみ通知を送信するように、モデルオブザーバーでafter_saveコールバックを設定しています。などの方法が変わったので?モデルが保存される前にのみ有用ですが、私が現在(そして失敗して)それを試みている方法は次のとおりです: def before_save(blog) @og_published = blog.published? end def after_save(blog) if @og_published == false and blog.published? == true Notification.send(...) end end これを処理するための最良の方法については、誰かが提案します(できれば、モデルオブザーバーのコールバックを使用して(コントローラーコードを汚染しないようにするため))。

6
Railsの非表示フィールドの未定義のメソッド「マージ」エラー
私はレールでこのようなことをしたいです これが私がこれまでにレールに持っているものです: <%= form_for @order do |f| %> <%= f.hidden_field :service, "test" %> <%= f.submit %> <% end %> しかし、それから私はこのエラーを受け取ります: undefined method `merge' for "test":String レールのhidden_​​fieldに値を渡すにはどうすればよいですか?

6
Railsでブラウザーページのキャッシュを防ぐ方法
Ubuntu-> Apache-> Phusion Passenger-> Rails 2.3 私のサイトの主要部分はあなたのクリックに反応します。したがって、リンクをクリックすると、リンク先に移動し、すぐにページが再生成されます。 ただし、[戻る]ボタンをクリックした場合、新しいページは表示されません。残念ながら、手動で更新しないと表示されません。ブラウザがキャッシュしているようです。ブラウザがページをキャッシュしないようにしたいのですが。 それとは別に、すべての静的アセットに将来の有効期限を設定したいと思います。 これを解決する最良の方法は何ですか?これをRailsで解決する必要がありますか?アパッチ?JavaScript? 助けてくれてありがとう、ジェイソン ああ。これらの提案はどちらも、私が探している動作を強制するものではありませんでした。 たぶんJavaScriptの答えがありますか?私はレールにコメントのタイムスタンプを書き込んでから、JavaScriptチェックを実行して、時間が5秒以内かどうかを確認することもできます(または何でも機能します)。はいの場合は問題ありませんが、いいえの場合はページをリロードしますか? これでうまくいくと思いますか? あなたのすべての協力に感謝します、 ジェイソン

25
ActiveRecordのランダムレコード
ActiveRecordを介してテーブルからランダムなレコードを取得する必要があります。私は2006年からのJamis Buckの例に従いました。 ただし、Google検索を介して別の方法に遭遇したこともあります(新しいユーザーの制限により、リンクに属性を付けることはできません)。 rand_id = rand(Model.count) rand_record = Model.first(:conditions => ["id >= ?", rand_id]) ここにいる他の人がどのようにそれをしたのか、または誰かがどの方法がより効率的であるかを知っているのかどうか知りたいです。

9
Rails 4-Gem :: LoadError:データベースアダプターに「mysql2」を指定したが、gemがロードされていない
私のgemfileには次のものが含まれています。 gem 'mysql2' 私のdatabase.ymlは次のとおりです: default: &default adapter: mysql2 database: <%= ENV['db_name'] %> username: <%= ENV['db_user'] %> password: <%= ENV['db_pass'] %> host: <%= ENV['db_host'] %> pool: 32 socket: <%= ENV['socket'] %> development: <<: *default production: <<: *default 私は両方bundle updateを実行しましたがbundle install、私のGemfile.lockはmysql2を示しています。 ただし、実行するrake db:migrateと、コンピューターとステージングサーバーの両方で次のようになります。 myproject.com(master)$ rake db:migrate WARNING: Use strings for Figaro configuration. …

9
Rubyでのフロートの丸め
丸めに問題があります。私は浮動小数点数を持っていますが、これを小数点第1桁で四捨五入したいと思います。しかし、私は.round基本的にそれをintに変えるものしか使用できません、つまり、2.34.round # => 2. 次のようなことをする簡単な効果の方法はありますか?2.3465 # => 2.35

4
ActiveRecord属性メソッドをオーバーライドする
私が話していることの例: class Person < ActiveRecord::Base def name=(name) super(name.capitalize) end def name super().downcase # not sure why you'd do this; this is just an example end end これは機能しているようですが、ActiveRecord :: Base docsの属性メソッドのオーバーライドに関するセクションを読んだだけで、read_attributeおよびwrite_attributeメソッドの使用を提案しています。上記の例で私がやっていることに何か問題があるに違いないと思いました。そうでなければ、なぜこれらのメソッドを属性メソッドをオーバーライドする「正しい方法」として祝福するのでしょうか?彼らはもっと醜いイディオムを強制しているので、それには正当な理由があるに違いない... 私の本当の質問:この例には何か問題がありますか?

5
RubyやRailsでカスタムエラータイプを定義する場所
Rubyライブラリ(gem)またはRuby on Railsアプリケーションでカスタムエラータイプを定義するためのベストプラクティスはありますか?具体的には: 彼らはプロジェクトのどこに構造的に属していますか?別の場所に、関連するモジュール/クラス定義をインライン化した別のファイル? 新しいエラータイプを作成するタイミングと作成しないタイミングを規定する規則はありますか? ライブラリが異なれば、実行方法も異なります。実際のパターンには気づきませんでした。一部のライブラリは常にカスタムエラータイプを使用しますが、他のライブラリはまったく使用しません。StandardErrorを拡張するすべてのエラーがあるものもあれば、階層がネストされているものもあります。空のクラス定義であるものもあれば、あらゆる種類の巧妙なトリックがあるものもあります。 ああ、そして私がこれらの「エラータイプ」を呼ぶのがちょっと曖昧だと感じたからといって、私が意味するのはこれです: class AuthenticationError < StandardError; end class InvalidUsername < AuthenticationError; end

22
Ruby on Railsの継続的な統合?[閉まっている]
閉まっている。この質問はスタックオーバーフローのガイドラインを満たしていません。現在、回答を受け付けていません。 この質問を改善したいですか?Stack Overflowのトピックとなるように質問を更新します。 6年前休業。 この質問を改善する Ruby on Railsの継続的インテグレーションソリューションを探して回りましたが、結果に満足していません。私はCruiseControl.NETを使用している.NETショップから来ましたが、使いやすさと豊富なステータス/レポート機能にひどく甘やかされていました。 理想的には私が探しています: 明らかなGit / SVNとTest :: Unitの統合 Rakeおよび/またはCapistranoとの統合 ビルドのステータスを示すWebインターフェイス 失敗したビルドの電子メール通知。 デスクトップ通知(場合によってはGrowlを介して) ビルドステータス用のREST API 他のコード分析ツールを実行し、UIで結果を報告するためのプラグインフレームワーク


6
Ruby on Rails:複数のハッシュキーを削除する
私はよくこれを書いています。 params.delete(:controller) params.delete(:action) params.delete(:other_key) redirect_to my_path(params) 削除の軌跡は正しくなく、どちらも正しくありません。 [:controller, :action, :other_key].each do |k| params.delete(k) end よりシンプルでクリーンなものはありますか?

21
ActionController :: InvalidAuthenticityToken
以下は、私のRailsアプリケーションのフォームが原因のエラーです。 Processing UsersController#update (for **ip** at 2010-07-29 10:52:27) [PUT] Parameters: {"commit"=>"Update", "action"=>"update", "_method"=>"put", "authenticity_token"=>"ysiDvO5s7qhJQrnlSR2+f8jF1gxdB7T9I2ydxpRlSSk=", **more parameters**} ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken): これはすべての非getリクエストで発生し、ご覧のauthenticity_tokenとおりです。

5
レール形式のラジオボタンのラベル
私の質問はこれに似ています が、Railsアプリに関するものです。 いくつかのラジオボタンを持つフォームがあり、ラベルをそれらに関連付けたいのですが。labelフォームヘルパーは、唯一のパラメータとしてフォームフィールドを取りますが、この場合には、私は、単一のフォームフィールドの複数のラジオボタンがあります。ラベルを手動で作成して、ラジオボタン用に自動生成されるIDをハードコーディングするのが唯一の方法です。誰かがそれを行うためのより良い方法を知っていますか? 例えば: <% form_for(@message) do |f| %> <%= label :contactmethod %> <%= f.radio_button :contactmethod, 'email', :checked => true %> Email <%= f.radio_button :contactmethod, 'sms' %> SMS <% end %> これは次のようなものを生成します: <label for="message_contactmethod">Contactmethod</label> <input checked="checked" id="message_contactmethod_email" name="message[contactmethod]" value="email" type="radio"> Email <input id="message_contactmethod_sms" name="message[contactmethod]" value="sms" type="radio"> SMS 私が欲しいもの: <input checked="checked" …


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