2

mongo_mapper を使用して単純な Rails 3.2.3 アプリケーションを cloudfoundry にプッシュしようとしましたが、504 ゲートウェイ タイムアウトが発生します。アプリケーションは localhost で正常に実行されました。以下に追加情報を提供しました。この問題を解決するための支援をお願いできますか?

アプリケーションを作成してプッシュするには、次のように入力しました。

rails new myapp -skip-active-record
scaffold massage content:string --skip-migration --orm mongo_mapper
bundle update
bundle install
bundle package
vmc push myapp --runtime ruby19

Gemfile は次のとおりです。

Source 'http://rubygems.org'
gem  rails', '3.2.3
gem  mongo_mapper
gem  bson_ext  
end

コントローラーは次のとおりです。

class MessagesController < ApplicationController
  def index
   @messages = Message.all
    respond_to do |format|
     format.html # index.html.erb
     format.json { render json: @messages }
    end
  end

 def show
  @message = Message.find(params[:id])
  respond_to do |format|
  format.html # show.html.erb
  format.json { render json: @message }
end
end

def new
@message = Message.new
respond_to do |format|
  format.html # new.html.erb
  format.json { render json: @message }
end
end

def edit
 @message = Message.find(params[:id])
end

def create
@message = Message.new(params[:message])

respond_to do |format|
  if @message.save
    format.html { redirect_to @message, notice: 'Message was successfully created.' }
    format.json { render json: @message, status: :created, location: @message }
  else
    format.html { render action: "new" }
    format.json { render json: @message.errors, status: :unprocessable_entity }
  end
end
end

def update
 @message = Message.find(params[:id])

 respond_to do |format|
  if @message.update_attributes(params[:message])
    format.html { redirect_to @message, notice: 'Message was successfully updated.' }
    format.json { head :no_content }
  else
    format.html { render action: "edit" }
    format.json { render json: @message.errors, status: :unprocessable_entity }
  end
end
end

def destroy
 @message = Message.find(params[:id])
 @message.destroy

respond_to do |format|
  format.html { redirect_to messages_url }
  format.json { head :no_content }
end
end
end

モデルは次のとおりです。

class Message
 include MongoMapper::Document
 key :content, String
 end

インデックスビューはこちら

<h1>Listing messages</h1>

<table>
 <tr>
  <th>Content</th>
 </tr>

 <% @messages.each do |message| %>
 <tr>
  <td><%= message.content %></td>
  <td><%= link_to 'Show', message %></td>
  <td><%= link_to 'Edit', edit_message_path(message) %></td>
  <td><%= link_to 'Destroy', message, :confirm => 'Are you sure?', method: :delete %></td>
 </tr>
 <% end %>
 </table>
 <br />
 <%= link_to 'New Message', new_message_path %>

ここに config/locales/mongo.yml があります

    defaults: &defaults
host: 127.0.0.1
port: 27017

development:
<<: *defaults
database: proj815_development

test:
<<: *defaults
database: proj815_test

# set these environment variables on your prod server
production:
host: <%= JSON.parse( ENV['VCAP_SERVICES'] )['mongodb-1.8'].first['credentials']['hostname'] rescue 'localhost'%>
port: <%= JSON.parse( ENV['VCAP_SERVICES'] )['mongodb-1.8'].first['credentials']['port'] rescue '27017'%>
database: <%= JSON.parse( ENV['VCAP_SERVICES'] )['mongodb-1.8'].first['credentials']['db'] rescue 'proj815' %>
username: <%= JSON.parse( ENV['VCAP_SERVICES'] )['mongodb-1.8'].first['credentials']['username'] rescue ''%>
password: <%= JSON.parse( ENV['VCAP_SERVICES'] )['mongodb-1.8'].first['credentials']['password'] rescue ''%>
4

1 に答える 1

2

通常、これはアプリケーションが大きすぎてアップロードできないために発生します。アプリケーションのサイズを小さくできれば問題ありません。

于 2013-01-14T22:06:37.100 に答える