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

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

5
宝石のインストール許可の問題
qichunren@zhaobak:~> gem install hpricot ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions into the /opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8 directory. 現在のログインユーザーはqichunrenであり、qichunreユーザーは.gem dirで書き込み権限を持っています。gemが最初に自分のホーム.gem dirにファイルをインストールしない理由を知りたいですか?私のGem Commonが最初に/opt/ruby-enterprise-1.8.7/lib/ruby/gems/1.8にファイルをインストールする理由

2
レールの列タイプを長い文字列に変更する
最初の移行で、列contentに文字列Activerecordであることを宣言し、注釈gemに従ってそれをstring(255)にした。 postgresを使用するherokuにアプリをプッシュした後、コンテンツに255より長い文字列をフォームに入力すると、エラーが発生します PGError: ERROR: value too long for type character varying(255) 問題は、コンテンツにおそらく非常に長い文字列(フリーテキスト、数千文字になる可能性がある)を含める必要があることです pgはどの変数を受け入れますか(文字列はこれには適切ではありません)。 その列のタイプを置き換えるマイグレーションを作成するにはどうすればよいですか ありがとう

9
大規模なRailsアプリケーションでのRSpecテストの高速化
私のRSpecテストには、2,000を超える例を含むRailsアプリケーションがあります。言うまでもなく、これは大規模なアプリケーションであり、テストする必要があることがたくさんあります。この時点でこれらのテストを実行することは非常に非効率的であり、非常に時間がかかるため、新しいビルドをプッシュする前にテストを作成することはほとんどお勧めできません。spec.optsに--profileを追加して、実行時間が最も長いサンプルを見つけました。実行に平均10秒かかるサンプルが少なくとも10個あります。あなたのRSpecエキスパートの間でそれは正常ですか?一例として、10秒は完全に長すぎますか?2,000の例を使用すると、すべてを完全にテストするにはかなりの時間がかかることがわかりますが、現時点では4時間は少し馬鹿げています。 最長の実行例については、どのようなときに見ていますか?ボトルネックを特定してスピードアップを図るために、既存の仕様をトラブルシューティングするにはどうすればよいですか。この時点では、毎分本当に役に立ちます。

11
link_to画像タグ。タグにクラスを追加する方法
私はlink_to imgタグを次のように使用しています <%= link_to image_tag("Search.png", :border=>0, :class => 'dock-item'), :action => 'search', :controller => 'pages'%><span>Search</span></a> 次のhtmlになります <a href="/pages/search"><img alt="Search" border="0" class="dock-item" src="/images/Search.png?1264132800" /></a><span>Search</span></a> class = "dock-item" <a>がimgタグではなくタグに移動するようにします。 どうすれば変更できますか? 更新: <%= link_to image_tag("Search.png", :border=>0), :action => 'search', :controller => 'pages', :class => 'dock-item' %> 結果は <a href="/pages/search?class=dock-item"><img alt="Search" border="0" src="/images/Search.png?1264132800" /></a>

4
RSpec:letブロックとbeforeブロックの違いは何ですか?
違いは何であるletとbeforeRSpecの中のブロックは? そして、それぞれをいつ使うのですか? 以下の例で良い方法は何ですか(以前に) let(:user) { User.make !} let(:account) {user.account.make!} before(:each) do @user = User.make! @account = @user.account.make! end 私はこのスタックオーバーフローの投稿を勉強しました しかし、上記のようなアソシエーション関連のletを定義するのは良いことでしょうか?



13
ActiveRecordクエリユニオン
Ruby on Railのクエリインターフェイスを使用して、(少なくとも私には)いくつかの複雑なクエリを記述しました。 watched_news_posts = Post.joins(:news => :watched).where(:watched => {:user_id => id}) watched_topic_posts = Post.joins(:post_topic_relationships => {:topic => :watched}).where(:watched => {:user_id => id}) これらのクエリはどちらもそれ自体で正常に動作します。どちらもPostオブジェクトを返します。これらの投稿を1つのActiveRelationに結合したいと思います。ある時点で数十万の投稿が存在する可能性があるため、これはデータベースレベルで行う必要があります。MySQLクエリの場合、単純にUNION演算子を使用できます。RoRのクエリインターフェイスで同様のことができるかどうか誰かが知っていますか?

16
Rails + Postgresドロップエラー:他のユーザーがデータベースにアクセスしています
Postgres上でRailsアプリケーションを実行しています。 2つのサーバーがあります。1つはテスト用、もう1つは本番用です。 テストサーバーに運用データベースのクローンを作成する必要があることがよくあります。 私がVladを介して実行しているコマンドは次のとおりです。 rake RAILS_ENV='test_server' db:drop db:create 私が抱えている問題は、次のエラーを受け取ることです。 ActiveRecord::StatementInvalid: PGError: ERROR: database <database_name> is being accessed by other users DROP DATABASE IF EXISTS <database_name> これは、誰かが最近Web経由でアプリケーションにアクセスした場合に発生します(postgresは「セッション」を開いたままにします) postgres DBでセッションを終了する方法はありますか? ありがとうございました。 編集する phppgadminのインターフェイスを使用してデータベースを削除できますが、rakeタスクでは削除できません。 phppgadminのドロップをrakeタスクでどのように複製できますか?

2
単一のアプリケーションで複数のドメインを処理するためのRailsルーティング
ここや他の場所でいくつかの同様の質問があるにもかかわらず、私はこの問題の実行可能な解決策を見つけることができませんでした。Rails 3ではこの質問に回答されていない可能性が高いため、次のようにします。 現在、ユーザーがアプリケーションのインスタンスを含む独自のサブドメインを作成できるようにするアプリケーションがあります。Rails 2では、subdomain-fu gemを使用するのが最適でしたが、バージョン3では、Railscast(http://railscasts.com/episodes/221-subdomains-in-rails-3)のように、劇的にシンプルになっています。 これは良いことですが、ユーザーが自分のドメイン名を自分のアカウントに関連付けるためのオプションも提供したいと思います。したがって、http://userx.mydomain.comがあるかもしれませんが、http://userx.comも関連付けることを選択してもらいたいと思います。 Rails 2でこれを行うためのいくつかの参照を見つけましたが、それらの手法はもう機能していないようです(特にこれ:https://feefighters.com/blog/hosting-multiple-domains-from-a-single-rails -app /)。 ルートを使用して任意のドメインを受け入れ、それをコントローラーに渡して適切なコンテンツを表示する方法を誰かが推奨できますか? 更新:Leonidのタイムリーな応答とコードの見直しのおかげで、私は今ほとんどの答えを得ています。最終的には、(Railscastソリューションから)使用していた既存のサブドメインコードに追加してから、routes.rbにビットを追加する必要がありました。私はまだそこまで来ていませんが、これまでに持っているものを投稿したいと思います。 lib / subdomain.rb内: class Subdomain def self.matches?(request) request.subdomain.present? && request.subdomain != "www" end end class Domain def self.matches?(request) request.domain.present? && request.domain != "mydomain.com" end end 最初のクラスを模倣して2番目のクラスを追加しました。これは、動作することが知られています。着信ドメインがメインサイトをホストしているドメインではないことを保証する条件を追加するだけです。 このクラスはroutes.rbで使用されます: require 'subdomain' constraints(Domain) do match '/' => 'blogs#show' end constraints(Subdomain) do …

5
Railsコントローラーですべての例外をキャッチする
次のように、Railsコントローラでキャッチされていないすべての例外をキャッチする方法はありますか? def delete schedule_id = params[:scheduleId] begin Schedules.delete(schedule_id) rescue ActiveRecord::RecordNotFound render :json => "record not found" rescue ActiveRecord::CatchAll #Only comes in here if nothing else catches the error end render :json => "ok" end ありがとうございました


7
RailsはjQueryからJSONを正しくデコードしていません(配列は整数キーのハッシュになります)
JSONオブジェクトの配列をjQuery to RailsでPOSTするたびに、この問題が発生します。配列を文字列化すると、jQueryが正しく機能していることがわかります。 "shared_items"=>"[{\"entity_id\":\"253\",\"position\":1},{\"entity_id\":\"823\",\"position\":2}]" しかし、配列をAJAX呼び出しのデータとして送信すると、次のようになります。 "shared_items"=>{"0"=>{"entity_id"=>"253", "position"=>"1"}, "1"=>{"entity_id"=>"823", "position"=>"2"}} 一方、単純な配列を送信するだけで機能します。 "shared_items"=>["entity_253"] Railsが配列をその奇妙なハッシュに変更するのはなぜですか?頭に浮かぶ唯一の理由は、ここに型がないためにRailsが内容を正しく理解できないことです(jQuery呼び出しで設定する方法はありますか?): Processing by SharedListsController#create as ありがとうございました! 更新: 文字列ではなく配列としてデータを送信してい.push()ます。配列は関数を使用して動的に作成されます。しようとしました$.postと$.ajax、同じ結果。


5
レールでRSpecおよびCapybaraを使用する場合の未定義のメソッド「visit」
カピバラをrspecで動作させることができません。それは私にこのエラーを与えます: undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil> 私はこれについてたくさんの投稿があることを知っていますが、ソリューションのどれも私のために働いていません。それらのほとんどは/ spec / featuresにない仕様に関係しています-私の仕様です。 最初のエラー: $bundle exec rspec spec F Failures: 1) security signs users in Failure/Error: visit "/sessions/new" NoMethodError: undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil> # ./spec/features/security_spec.rb:4:in `(root)' Finished in 0.006 seconds 1 example, 1 failure Failed examples: rspec ./spec/features/security_spec.rb:3 # security …

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