0

これはかなり簡単に見えますが、まだ完了できません

私はDeviseをインストールし、ユーザーがウェブサイトを作成するユーザーとウェブサイトのクラスを持っています。

ログインしたユーザーに、自分が作成したサイトを表示したいと思います。これはコントローラーコードです

def index
@websites = Website.find(:all)
end

そしてindex.html.erbは

<%= render :partial=> "website_list", :locals=> {:website => @Website} %>

ログインしたユーザーのみが作成したサイトを表示するには、コントローラーのインデックスで何を変更する必要がありますか?

編集 - OK、移行を使用してウェブサイト テーブルに外部キー user_id を作成できますが、user_id の値はすべて NIL です。理由はありますか?

編集 2 - ここに私のフィールドがあります

コントローラーのdashboard_controller.rb

@websites = current_user.websites.all

website_controller.rb これは scaffolding によって作成されたもので、何も編集していません。

モデル user.rb

has_many :websites

ウェブサイト.rb

attr_accessible :description, :url, :user_id (**I added :user_id here**)
belongs_to :user

ビュー

<%= render :partial=> "website_list", :locals=> {:website => @Website} %>

移行

add_column :websites, :user_id, :integer

何が欠けているのかわからないのですか?

4

4 に答える 4

1

これを使用できます:

@websites = current_user.websites.all 
于 2012-12-26T05:15:26.223 に答える
0

これを試して:

@websites = Website.find(:all, :conditions => ['user_id = ?',current_user.id.to_s])
于 2012-12-26T05:22:19.760 に答える
0

あなたはこのようにすることができます..

    @websites = Website.where("client_id='101'")
于 2012-12-26T05:23:10.017 に答える
0

問題はコントローラーの作成アクションにあると思います-ユーザーに接続せずにWebサイトを保存しています。

于 2012-12-27T07:40:06.917 に答える