Я пытаюсь показать список книг пользователя, но по какой-то причине сохраненные книги не отображаются в представлении. Предполагается, что приложение позволяет зарегистрированному пользователю сохранять книги, а затем отображать список книг, сохраненных этот конкретный пользователь. Вот мой код ..
<h1>Home#index</h1>
<%=link_to 'add a book',new_book_path%>
<ul>
<% @books.each do |b|%>
<li><%= b.title %></li>
<li><%= b.author %></li>
<%end%>
</ul>
КОНТРОЛЛЕР КНИГИ
class BooksController < ApplicationController
def index
end
def create
@book=current_user.books.build(params[:book])
if @book.save
redirect_to '/home/index'
else
render :action =>'new'
end
end
def new
@book=Book.new
end
end
Домашний контроллер
class HomeController < ApplicationController
#kip_before_filter :authenticate_user!
#efore_filter :homenticate_user!
def index
@books=current_user.books
end
def show
end
def welcome
end
end
Книжная модель
class Book < ActiveRecord::Base
has_many :book_ownerships
has_many :users,:through => :book_ownerships
end
Модель пользователя
class User < ActiveRecord::Base
has_many :book_ownerships
has_many :books,:through => :book_ownerships
has_many :skills
# Include default devise modules. Others available are:
# :token_authenticatable, :lockable, :timeoutable and :activatable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation,:firstname
end
Модель владения книгой
class BookOwnership < ActiveRecord::Base
belongs_to :user
belongs_to :book
end
Просмотр книги
<h1>Book#new</h1>
<p>Find me in app/views/book/index.html.erb</p>
<%= form_for(@book) do |f|%>
<%=f.text_field :title%>
<%=f.text_field :author%>
<%=f.submit%>
<%end%>