私が開発しているアプリは、これまでシングルユーザー環境でしかありませんでした。ついにマルチユーザー機能を追加する必要が出てきたので、authlogicのrailscastに従って、簡単なログインを取得しました。
次に、正しいモデルにhas_many :itemsとaccepts_nested_attributes_for :itemsを追加しました。belongs_to :user次に、データベースとセットアップを削除してから、移行しました。user_idまた、ネストされたすべてのモデルに列を追加しました。
その後、「新規アイテムの作成」リンクをクリックすると、新しいページに移動して新しいアイテムを作成します。item_indexページに戻ると、もう表示されていません。localhost / item / 1に移動してレコードを表示できるので、レコードが作成されていることはわかりますが、item_index.html.erbで表示しようとすると、レコードが表示されなくなります。
これが、ユーザーを追加する前に機能していた基本的なループです。(テーブルにレンダリングしています)
<% for item in @items %>
<%= link_to item.name, item %>
<% end %>
ループが間違っていると思いますが、完全にはわかりません。
ありがとう
編集:アイテムコントローラーのインデックスメソッドで何が起こっているかを次に示します。
def index
@items = Item.search params[:search]
if @items.nil?
@items = Item.all
end
end
私はthinking-sphinxを使用しているので、奇妙なif nil?ことがあります。インデックスが空の場合、失敗することがありました。
edit2:
インデックスを変更すると
def index
@items = Item.all
end
すべてが表示されます。つまり、スフィンクスが私のレンダリングをいじるのを考えることと関係があるということです
edit3:思考-スフィンクスのやり方で、私はそれに関係のないいくつかのことをしました、そしてそれは魔法のように再び働きます。