0

私はアプリのような基本的なソーシャルネットワークを実装しようとしているルビーで遊んでいます。

ステータスの更新を表示する2つのビュー、user#showとホームページ(ステータスの更新を追加し、独自のビューも表示します)があります。

ホームでは、Home#indexにエラーTypeErrorが返され、nilを正確な数値に変換できません。しかし、User.find(1)が正常に機能するように@userをハードコーディングすると、@ user = current_user(私はdeviseを使用しています)の場合と同じように競合するように見えます。

ホームコントローラー:

    class HomeController < ApplicationController
  def index
    @user = current_user
    @new_status_update = current_user.status_updates.build if user_signed_in?
    @status_updates = @user.status_updates
  end
end

ユーザーコントローラー:

class UsersController < ApplicationController
  before_filter :authenticate_user!
  load_and_authorize_resource :only => :index

  def show
    @user = User.find(params[:id])
    @status_updates = @user.status_updates
  end

end

ループはビューで同じです

4

1 に答える 1

0

OK、current_userをUser.find(current_user)でラップすることで問題を解決しました

これはおそらく最善の方法ではありませんが、少なくとも機能します。

于 2012-05-25T12:37:55.017 に答える