2012-02-27 13 views
0

FacebookアプリはAS3フロントエンドとAPIish Railsバックエンドを使用します。routes.rbの "/"をpublic/index.htmlにルーティングするには?

Facebookは、キャンバスページ(FacebookのChromeに吸い込まれたアプリページ)を動的(index.erb)またはディレクトリ( "/"で終わる)にする必要があります。私はRailsのビューを知らないので、私は "myapp.herokuapps.com/"のURLに行きました。

Herokuのログはこのエラーを与える:

ActionController :: RoutingError(Noルートマッチ "/")

を私はインデックスファイルに "/" 一致させることができますどのように?

"/" => ????

私はリソースをルーティングするのに使用されますが、静的ページは使用しません。

のでroot :to => 'YOUR_CONTROLLER_NAME#YOUR_CONTROLLER_ACTION'はそれを行う必要があります

答えて

6

静的ページをルートとして表示する場合は、高電圧宝石を使用する必要があります。

  • root to: => 'high_voltage/pages#show', :id => 'home'

であなたの静的なページに/app/views/pages/

  • ルートであなたの静的home.html.erbページを入れて、あなたのGemfile
  • gem 'high_voltage'を追加します。これは、次のように、あなたのサイトへの静的なページを追加することができますリダイレクトは必要ありません。

    高電圧ドキュメントはhttps://github.com/thoughtbot/high_voltageにあります。

  • +0

    Bam!それがトリックでした。 –

    +0

    私は投票するだろうが、私はまだ担当者を持っていない。 –

    3

    はあなたのroutes.rbをファイルにのroot_pathを定義する必要があります。

    あなたは、これはうまくいくrootに公開/ index.htmlををマッピングしたかったので、もしそしてちょうど、パブリックディレクトリ内のファイルの名前を付け、ファイルにマップしたい場合:

    root :to => 'index' 
    
    +0

    "/"は自動的にルートにマッチしますか?それでは、コントローラーではなくページにルートをどのようにマップするのですか? root:to => "public/index.html"? –

    +0

    私の更新された回答を参照してください。受け入れてupvote場合は、あなたのために働く! – TheDelChop

    +0

    アクションパラメータを期待するルートはまだ予想されます。/app/vendor/bundle/ruby/1.9.1/gems/actionpack-3.0.9/lib/action_dispatch/routing/mapper。rb:171: 'default_controller_and_action ':missing:action(ArgumentError) –

    0

    どちらの回答も正しいです。しかし、thoughtbotの人々には、以下をお勧めします:次のコード内のファイル "high_voltage.rb"

  • 書き込みを作成

    HighVoltage.configure do |config| 
        config.home_page = "home" 
    end 
    
  • 再起動 "/設定/初期化子" アンダー

    1. あなたサーバー

    あなたはhttps://github.com/thoughtbot/high_voltage#specifying-a-root-path

    01でマニュアルを確認することができます
  • 関連する問題