2

編集

これがGitHubのプロジェクトです:https ://github.com/lionelrudaz/myteam2


Railsapp(Twitter Bootstrap、Devise、CanCan)のテンプレートを使用して、RubyonRailsで最初のアプリケーションを作成しています。

また、アプリをHerokuに公開するために必要な手順を実行しました。

これまでのところすべてが順調で、MacBook Proでサーバーを再起動するまで、Herokuでの最初の公開は問題ありませんでした。

これで、「申し訳ありませんが、問題が発生しました」というメッセージが表示されたデフォルトのエラーページが常に表示されます。

ターミナルでは、次のようになります。

=> Booting Thin
=> Rails 3.2.8 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
>> Thin web server (v1.5.0 codename Knife)
>> Maximum connections set to 1024
>> Listening on 0.0.0.0:3000, CTRL+C to stop


Started GET "/" for 127.0.0.1 at 2012-10-01 19:19:21 +0200
Processing by HomeController#index as HTML
     User Load (0.3ms)  SELECT "users".* FROM "users" 
     Club Load (0.2ms)  SELECT "clubs".* FROM "clubs" ORDER BY "clubs"."id" DESC LIMIT 1
Rendered home/index.html.erb within layouts/application (23.2ms)
Completed 500 Internal Server Error in 190ms

エラーページを無効にして実際のスタックトレースを取得する方法がわからないため、コード行ごとにコード行を削除して、機能していない行を見つけ始めました。実際には、f.label命令が機能していないようです。私は彼らがそうしたことを知っています、私は長い間私のアプリを使用しました。

これが私のhome_controller.rbファイルです

class HomeController < ApplicationController
  def index
    @users = User.all
    @club = Club.last
  end
end

index.html.erb

<h3>Home</h3>

<%= debug @club %>

<%= form_for @club do |f| %>

  <div class="control-group">
    <%= RUBY_VERSION %>
    <%= Rails.version %>
    <%= f.label :name, :name %>
    <%= f.text_field :name %>
  </div>

 <% end %>

 <% @users.each do |user| %>
    <p>User: <%=link_to user.name, user %></p>
 <% end %>

変更するとエラーが発生します

 <%= f.label :name, :name %>

 <%= f.label :name %>

デバッグを確認できるように、Herokuでアプリを更新しました:http://myteam2.herokuapp.com/

何が悪いのかわかりませんが、とても基本的なので、とても馬鹿げています。

調査しているときに、f.labelの2番目の引数は文字列でなければならないことに気づきました。t()メソッドを使用して、i18nファイルから電子メールのテキストを変更することはできません。

アプリケーションを進めることができず、本当にイライラします。私のGoogleの調査は成功していません。

さらに情報が必要な場合はお知らせください。

乾杯、

4

2 に答える 2

0

フォームビルダーがある場合とない場合でラベルを使用すると混乱します。

labelの内部を使用する場合form_tag、2つのパラメーターを取ります。1つはラベルを適切なテキストフィールドに接続するために必要なパラメーターの名前であり、2つ目は実際のラベルテキストです。

ただし、を使用するform_for @whatever do |f|と、ラベルの最初のパラメーターが自動的に認識されます。これを実行するf.label :nameと、fは名前とは何か、何f.text_fieldが生成されるかを認識し、すべての厄介な処理を実行します。

これはRailsのドキュメントでは明確でないことがよくありますが、原則として、を使用して関連モデルからフォームヘルパーメソッドを実行するときに、フォームヘルパーメソッドの最初のパラメーターを削除できますform_for

于 2012-10-01T22:48:17.493 に答える
0

ライオネル、開発環境でプロジェクトをローカルで実行しているときにエラーメッセージが表示されるはずです。

プロジェクトのクローンを作成し、少しセットアップした後rails s、デフォルトの開発環境でプロジェクトを開始するために実行しました。ホームページは正常に読み込まれましたが、[ログイン]をクリックして/ users / sign_inに移動すると、次のエラーが表示されました。

エラー:

http://www.evernote.com/shard/s157/sh/078d0a12-73b1-4eb7-9430-55b916f19ef7/12c0cbb7b7254e5c02bb7ff0f0c4aa3f

このエラーは、config / locales / users.en.yml内に問題が存在し、ハッシュが予期されていたが、何も返されなかったことを示しています。

現在、config / locales/users.en.ymlは空のファイルです。

修理:

そのファイルを削除することができます。使用する予定がない場合は、これを行ってください。

また

ファイルを解析するとハッシュの形式でデータが返されるようにコンテンツを追加します。en:config / locales/users.en.ymlの先頭に追加するだけです。将来、翻訳データを入力する予定がある場合は、これを行ってください。

他の:

Herokuでアプリケーションを開発しているようです。私の経験から、これは難しいでしょう。ローカルで機能を追加したり、バグを修正したりする方がはるかに簡単です。次に、アプリが安定した状態になったら、Herokuにデプロイします。Herokuに個別のステージングサーバーをセットアップして、本番サーバーにデプロイする前に変更をテストすることもできます。

heroku logs --tailheroku gemを使用すると、アプリケーションからの出力を監視するために実行できます。あなたがそれを使用していなかったならば、それはあなたの問題を解決するのを助けたかもしれません。

幸運を!

于 2012-10-02T14:10:19.330 に答える