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

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


7
EOFError:Net :: HTTPでファイルの終わりに達した問題
ruby-1.8.7-p302 / Rails 2.3.11を使用しています。FQL(Facebook API)を使用してリンクの統計を取得しようとしています。これが私のコードです: def stats(fb_post_url) url = BASE_URI + "?query=#{URI.encode("select like_count from link_stat where url=\"#{fb_post_url}\"")}" parsed_url = URI.parse(url) http = Net::HTTP.new(parsed_url.host, parsed_url.port) request = Net::HTTP::Get.new(parsed_url.request_uri) response = http.request(request) response.inspect end そしてここにエラーがあります: EOFError: end of file reached from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/protocol.rb:135:in `sysread' from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/net/protocol.rb:135:in `rbuf_fill' from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/timeout.rb:67:in `timeout' from /home/rahul/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/timeout.rb:101:in `timeout' …



19
Nokogiriのインストールが失敗する-libxml2がない
「Nokogiriのインストール」チュートリアルのドキュメントに従って、Nokogiriのインストールの問題を常に回避しました。 しかし、今回はすべての依存関係をインストールしても、のこぎりはインストールされていません。次のエラーが発生します。 libxml2 is missing. please visit <http://nokogiri.org/tutorials/installing_nokogiri.html> libxml2およびlibxsltディレクトリを指定してインストールを試みました。 sudo gem install nokogiri -- --with-xml2-include=/usr/include/libxml2 --with-xml2-lib=/usr/lib --with-xslt-dir=/usr/ しかし、同じエラーを返しました。 私は他のすべての関連するスタックオーバーフロー記事をフォローしましたが、どれも役に立ちませんでした。誰かが解決策を持っていますか?

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を使用してページを提供するローカル開発です。 画像フォルダ全体を破棄しても、画像は引き続き提供されます。 何か不足していますか?


8
Rails 2.3スタイルのプラグインと非推奨の警告がHerokuでタスクを実行している
Rails 3.2にアップグレードしています。rakedb:migrateを実行すると、次の形式のエラーがいくつか表示されます。 廃止警告:ベンダー/プラグインにRails 2.3スタイルのプラグインがあります!これらのプラグインのサポートはRails 4.0で削除されます。それらを移動してGemfileにバンドルするか、lib / myplugin / *およびconfig / initializers / myplugin.rbとしてアプリに組み込みます。詳細については、リリースノートを参照してください:http : //weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released。(/ app / Rakefile:7から呼び出されます) 困惑しているのは、vendor/pluginsディレクトリが空であるということです-参照している別のプラグインディレクトリはありますか?

9
Rails default_scopeのオーバーライド
デフォルトのスコープを持つActiveRecord :: Baseモデルがある場合: class Foo < ActiveRecord::Base default_scope :conditions => ["bar = ?",bar] end 条件Foo.find を使用せずに行う方法はありdefault_scopeますか?つまり、デフォルトのスコープをオーバーライドできますか? 名前に「デフォルト」を使用すると、オーバーライド可能であることを示唆していると思いましたが、そうでない場合はのような名前になりglobal_scopeますよね?

4
レール内のテーブルの名前を変更する
テーブルの名前を変更したい...(任意のテーブル) 私はこのコード行を試しました: ActiveRecord::ConnectionAdapters::SchemaStatements.rename_table(old_name, new_name) ここで奇妙なことです。初めて機能することはわかっていましたが、次のエラーが発生しました:ActiveRecord :: ConnectionAdapters :: SchemaStatements:Moduleの未定義のメソッド `rename_table ' 設定する必要があるものはありましたか?

9
Ruby on Rails:文字列をHTMLとしてレンダリングする方法は?
私が持っています @str = "<b>Hi</b>" そして私のerbビューでは: <%= @str %> ページに表示されるのは:<b>Hi</b>私が本当に欲しいのは Hiである場合です。文字列をHTMLマークアップとして「解釈」するルビーの方法は何ですか? 編集する:場合 @str = "<span class=\"classname\">hello</span>" 私の見解では <%raw @str %> HTMLソースコードは<span class=\"classname\">hello</span>本当に欲しいところです<span class="classname">hello</span>(二重引用符をエスケープするバックスラッシュなし)。これらの二重引用符を「エスケープ解除」するための最良の方法は何ですか?

14
Rubyのブロックのdo..endと中括弧
Rubyで複数行ブロックを定義するためにdo..endを使用せず、代わりに中括弧を使用するように積極的に説得しようとしている同僚がいます。 私は固い中括弧を短いワンライナーにのみ使用し、他のすべてに使用することに固執しています。しかし、私は何らかの解決策を得るために、より大きなコミュニティに手を差し伸べると思いました。 それはどちらですか、そしてなぜですか?(いくつかのshouldaコードの例) context do setup { do_some_setup() } should "do somthing" do # some more code... end end または context { setup { do_some_setup() } should("do somthing") { # some more code... } } 個人的には、上記を見るだけで私の質問に答えますが、私はこれをより大きなコミュニティに開放したいと思いました。

12
Rails Observer 4.0の代替
Observersが正式にRails 4.0から削除されたので、他の開発者が自分の代わりに何を使っているのか知りたいです。(抽出されたgemを使用する場合を除きます。)オブザーバーは確かに乱用され、時として扱いにくくなる可能性がありますが、キャッシュをクリアする以外にも多くのユースケースがあり、有益でした。 たとえば、モデルへの変更を追跡する必要があるアプリケーションを考えてみましょう。オブザーバーはモデルAでの変更を簡単に監視し、モデルBでそれらの変更をデータベースに記録できます。複数のモデルにわたる変更を監視したい場合は、1人のオブザーバーがそれを処理できます。 Rails 4では、他の開発者がその機能を再現するためにObserversの代わりに使用している戦略に興味があります。 個人的には、これらの変更が各モデルコントローラーのcreate / update / deleteメソッドで追跡される、一種の「ファットコントローラー」の実装に傾いています。各コントローラーの動作が少し膨れますが、すべてのコードが1か所にあるため、読みやすさと理解に役立ちます。欠点は、非常によく似たコードがいくつかのコントローラーに散在していることです。そのコードをヘルパーメソッドに抽出することはオプションですが、これらのメソッドへの呼び出しはどこにでも散らかっています。世界の終わりではありませんが、「細いコントローラー」の精神でもありません。 ActiveRecordコールバックも考えられる別のオプションですが、私の意見では2つの異なるモデルを非常に密接に結合する傾向があるため、個人的には好きではありません。 したがって、Rails 4のオブザーバーのない世界では、別のレコードが作成/更新/破棄された後に新しいレコードを作成する必要がある場合、どの設計パターンを使用しますか?ファットコントローラー、ActiveRecordコールバック、または何か他のもの? ありがとうございました。


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