3

railstutorial.org のチュートリアルに従っています。Web ページで gravatar を確認できますが、rspec テストが失敗します。

user_controller_spec.rb テストは次のとおりです。

describe "GET 'show'" do

  before(:each) do
    @user = Factory(:user)
  end

  it "should be successful" do
    get :show, :id => @user
    response.should be_success
  end

end

関連する show.html.erb ファイルは次のとおりです。

<table class="profile" summary="Profile information">
  <tr>
    <td class="main">
      <h1>
        <%= gravatar_image_tag(@user.email) %>
        <%= @user.name %>
      </h1>
    </td>
    <td class="sidebar round">
      <strong>Name</strong> <%= @user.name %><br />
      <strong>URL</strong> <%= link_to user_path(@user), @user %>
    </td>
  </tr>
</table>

「未定義のメソッド 'gravatar_image_tag' というエラーが表示されます。「gem install gravatar_image_tag」を実行して対応する gem を既にインストールし、gemfile に追加し、「bundle install」も実行しました。「gem を実行すると、インストール済みとしてリストされます。リスト"

これを数時間デバッグしようとしています。どんな助けでも大歓迎です。前もって感謝します。ところで、GIT Bash、RubyInstaller-1.9.2-p0 で 32 ビット Windows 7 を実行しています。

エラーメッセージ:

代替テキスト

4

6 に答える 6

18

同じチュートリアルに従って、同じundefined method 'gravatar_image_tag'エラーが発生しましたが、上記の受け入れられたものとは異なる解決策でした (私の宝石は Gemfile の正しい場所にあったため、問題ではありませんでした)。

サーバーを再起動するだけで(Ctrl Cその後rails server)、すべてが修正されました。

于 2010-10-29T20:25:34.207 に答える
1

同じ問題が発生しましたが、再起動するだけで修正されました。

于 2013-02-17T16:52:21.907 に答える
1

私は宝石の作者です。github ページhttp://github.com/mdeering/gravatar_image_tag/issuesで、Rails のバージョンと gem リストに関する問題を開いてもらえますか。問題を解決できるかどうかを確認し、ここに回答を投稿します。

gemcutter にプッシュできるプレリリース バージョンがいくつかあり、すでに問題が解決している可能性があります。

乾杯、マイク D.

于 2010-10-15T18:07:30.270 に答える
1

gemはgravatar_image_tag、gemfile 内のすべての環境に対してグローバルですか? ブロックなどにある場合group :development, :production、テストでは使用できません。

そして、私はそれを試していませんが、あなたの行:

get :show, :id => @user

それが必要なようです:

get :show, :id => @user.id

于 2010-10-15T05:42:02.560 に答える
1

Spork を DRB サーバーとして使用している場合は、再起動してみてください。(Hartls PDFもフォローしています)。

于 2012-04-15T11:14:30.743 に答える
0

Michael Hartl の PDF のリリース以降、gravatar gem ファイルが更新されました。

gem 'gravatar_image_tag'

それをGemfileに含めてから、次を使用してRailsサーバーを再起動します

rails s

それは私のために働いた。

于 2012-01-02T17:57:11.973 に答える