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

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

7
rails-コンソール出力をファイルにリダイレクトする
bashコンソールでこれを行うと: cd mydir ls -l > mydir.txt >演算子は標準入力をキャプチャし、それをファイルにリダイレクトします。そのためmydir.txt、標準出力ではなく、ファイルのリストを取得します。 Railsコンソールで同様のことを行う方法はありますか? たくさんのプリント(〜8k行)を生成するrubyステートメントがあり、それを完全に表示したいのですが、コンソールは最後の1024行程度しか「記憶」していません。だから私はファイルにリダイレクトすることを考えました-誰かがより良いオプションを知っているなら、私はすべての耳です。

4
Rails内からRubyバージョンを判別する
Rails内から(Web上またはを介してscript/console)実行されているRubyのバージョンを判別する方法はありますか?Ruby 1.8.6をインストールしましたが、Ruby Enterprise Edition 1.8.7-20090928もインストールしましたが、正しいインストールを使用していることを確認したいと思います。

5
Railsの保護されたプライベートメソッド
Rubyでのメソッドの可視性(パブリックメソッド、プロテクトメソッド、プライベートメソッド)は、このブログ投稿のような場所で詳しく説明されています。しかし、Ruby on Railsでは、フレームワークの設定方法が原因で、通常のRubyアプリケーションとは少し異なるように見えます。それで、Railsモデル、コントローラー、ヘルパー、テストなどでは、保護されたメソッドまたはプライベートメソッドを使用することが適切である/適切でないのはいつですか? 編集:これまでの回答をありがとう。Rubyでの保護とプライベートの概念は理解していますが、Railsアプリのさまざまな部分(モデル、コントローラー、ヘルパー、テスト)のコンテキスト内でこれらのタイプの可視性が使用される一般的な方法の説明をもっと探しています。 。たとえば、パブリックコントローラメソッドはアクションメソッドであり、アプリケーションコントローラの保護されたメソッドは、複数のコントローラからアクセスする必要がある「ヘルパーメソッド」などに使用されます。


4
最高のRubyon RailsWebSocketツール[クローズ]
現在のところ、この質問は私たちのQ&A形式には適していません。回答は事実、参考資料、または専門知識によって裏付けられることを期待していますが、この質問は、討論、議論、世論調査、または広範な議論を求める可能性があります。この質問を改善し、場合によっては再開できると思われる場合は、ヘルプセンターにアクセスしてガイダンスを入手してください。 9年前に閉鎖。 Rails 3でプロジェクトを開始しましたが、通知を追加する必要があります(Facebookのように)。iPadなどのサポートデバイスにWebSocketを使用するのが最善の方法ですが、Railsに簡単に実装するための優れたツールが見つかりません。Pusherappを見つけましたが、価格が高すぎて、サードパーティの会社にデータを提供するのは賢明ではないと思います。だから必要なもの: オープンソース ある種のチャネルはサポートします Railsのヘルパー(およびRails 3の操作)

4
アクションの1つのレイアウトをオフにします
私の状況:ReportsControllerの表示アクションは純粋なhtmlをレンダリングする必要がありますが、ファイルとしてはレンダリングしないでください(ブラウザーで表示して後で保存するため)。したがって、レンダリングには、ビューテンプレートview.html.erbを使用し、このアクションのレイアウトをオフにする必要があります。ただし、このコントローラーの他のアクションでは、レイアウトは変更されないままにする必要があります。次のように、コントローラー全体でのみオフになります。 ReportsController < ApplicationController layout false しかし、それが間違っている:(すべてのアクションについて、私はこのようなものをアクションで使用しようとしました: def view @report = Report.new(params[:report]) unless @report.valid? render :action => 'new' and return else render :layout => false end end 私は何をすべきか?

2
ポリモーフィックアソシエーションで外部キーを使用できないのはなぜですか?
以下にRailsモデルとして示されているような、ポリモーフィックな関連付けに外部キーを設定できないのはなぜですか? class Comment < ActiveRecord::Base belongs_to :commentable, :polymorphic => true end class Article < ActiveRecord::Base has_many :comments, :as => :commentable end class Photo < ActiveRecord::Base has_many :comments, :as => :commentable #... end class Event < ActiveRecord::Base has_many :comments, :as => :commentable end

11
Railsでの破棄を「検証」するにはどうすればよいですか?
Restfulリソースの破棄時に、破棄操作の続行を許可する前に、いくつかのことを保証したいですか?基本的に、データベースが無効な状態になることに気付いた場合、破棄操作を停止する機能が必要ですか?破棄操作には検証コールバックがないので、破棄操作を受け入れる必要があるかどうかをどのように「検証」するのでしょうか。

1
ERBでERBタグをエスケープするにはどうすればよいですか
私は簡単なfixture.ymlファイルを持っています: label: body: "<%= variable %>" 問題は、ERBコードがフィクスチャのロードの一部として解析されるのに対し、実際には本体を文字通り「<%=変数%>」(補間されていない)にしたいということです。 ERBタグをエスケープするにはどうすればよいですか?

16
WindowsでRuby / Railsを実行する際の制限
RoRのインストールドキュメントには、WindowsでRuby on Railsを実行することには多くの制限があり、場合によってはライブラリ全体が機能しないことが記載されています。 これらの制限はどれほど悪いですか、RoRをコーディング/実行するために常にデフォルトでLinuxを使用する必要がありますか?Iron Rubyはこれらの制限を修正することが期待されていますか、それともOS自体のコアですか? 編集Linuxでのインストールと実行に関する回答をありがとうございますが、インストールドキュメントで参照されている機能の制限と、機能していないライブラリを理解しようとしています-コメントへのリンクを見つけようとしていますが、インストールで参照されているのは、msiパッケージをインストールしたときに私を読んだと思います 編集 最近IronRubyを参照していただきありがとうございます。これは確かに注目すべきプロジェクトであり、明らかに.NET言語であるため、約束を果たすことができれば非常に貴重です。しかし、最終的には、私の場合、弾丸を噛んでUbuntuサーバーをインストールしました。 <bias>何年も前にやるべきだった</ bias>

4
レールでのThread.current []の使用の安全性
情報をThread.currentハッシュに格納する方法(たとえば、current_user、現在のサブドメインなど)について、相反する意見が寄せられています。この手法は、モデルレイヤー内でのその後の処理(クエリスコープ、監査など)を簡素化する方法として提案されています。 Railsでスレッド変数が断続的になるのはなぜですか? RailsのAPIラッパーでThread.currentを使用する代わりに Thread.current []値とクラスレベル属性はRailsで安全に使用できますか? 多くの人は、MVCパターンを壊すため、このプラクティスは受け入れられないと考えています。他の人はアプローチの信頼性/安全性について懸念を表明し、私の2部構成の質問は後者の側面に焦点を当てています。 Thread.currentハッシュは、そのサイクル全体を通じて、1つの応答に対してのみ使用可能でプライベートであることが保証されていますか? 応答の最後にスレッドが他の着信要求に引き渡され、それによってに格納されてThread.currentいる情報が漏洩する可能性があることを理解しています。応答が終了する前に(たとえばThread.current[:user] = nil、コントローラーから実行することによって)そのような情報をクリアすることは、after_filterそのようなセキュリティ違反を防ぐのに十分でしょうか? ありがとう!ジュゼッペ

6
Ruby on Rails:キャッシュされたページをクリアする
開発環境でページをキャッシュしているRoRアプリケーション(ruby v1.8.7; rails v2.3.5)があります。これはそれほど問題にはなりませんが、キャッシュされたページのa要素は正しくありません。 development.rbファイルに変更を加えておらず、コントローラーにキャッシュコマンドを故意に追加していません。 このサイト(localhost)のブラウザ(OSX上のFirefox 3.5)のCookieとページキャッシュをクリアしようとしました。Mongrelも再起動しました。何も役に立たないようです。 何が足りないのですか?

9
ActiveRecordを使用して、after_update中にレコードの古い値を取得する方法はありますか
簡単な例を使用したセットアップは:私は1つのテーブル(持っているTotalsの合計保持)amount第二の表の各レコードの列を(Things)。 thing.amountが更新されたら、古い値と新しい値の差をに追加したいと思いますtotal.sum。 今、私はself.amount中に減算しbefore_update、中に加算self.amountしていafter_updateます。これにより、更新の成功に対する信頼が非常に高くなります。 制約: すべてのトランザクションの合計を単純に再計算したくありません。 質問:簡単に言うと、after_updateコールバック中に元の値にアクセスしたいと思います。これを行うにはどのような方法がありますか? 更新: LukeFranclのアイデアを採用します。after_updateコールバック中も、self.attr_wasまさに私が望んでいた値にアクセスできます。またafter_update、この種のロジックをモデルに保持したいので、実装を採用することにしました。このようにして、将来どのようにトランザクションを更新することにしたとしても、トランザクションの合計を正しく更新していることがわかります。実装の提案をしてくれた皆さんに感謝します。


5
Rspec3フラッシュメッセージをテストする方法
rspecでコントローラーのアクションとフラッシュメッセージの存在をテストしたい。 アクション: def create user = Users::User.find_by_email(params[:email]) if user user.send_reset_password_instructions flash[:success] = "Reset password instructions have been sent to #{user.email}." else flash[:alert] = "Can't find user with this email: #{params[:email]}" end redirect_to root_path end スペック: describe "#create" do it "sends reset password instructions if user exists" do post :create, email: …

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