我希望我的應用程序在點擊鏈接時將圖書添加到current_user。我的代碼似乎沒問題,沒有錯誤,但用戶點擊鏈接後沒有任何反應。如何使用link_to從控制器調用方法?
book.rb:
has_many :book_users
has_many :users, through: :book_users
user.rb:
has_many :book_users
has_many :books, through: :book_users
book_user.rb:
belongs_to :book
belongs_to :user
books_controller.rb:
before_action :is_admin?, except: [:book_params, :add_to_books_i_read, :index]
before_filter :authenticate_user!
expose(:book, attributes: :book_params)
expose(:books)
def create
if book.save
redirect_to(book)
else
render :new
end
end
def update
if book.save
redirect_to(book)
else
render :edit
end
end
def add_to_books_i_read(book_id)
current_user.books << Book.find(book_id)
end
在我的索引視圖中我有
ul
-books.each do |book|
li
= link_to "#{book.name}", book_path(book)
= link_to " Add to my books", {:controller => "books", method: :add_to_books_i_read, book_id: :book.id}
那麼,我做錯了什麼?爲什麼我的方法add_to_books_i_read什麼都不做?點擊這個link_to後,數據庫book_users中的表不會記錄任何內容,但它本身也很有效(我通過控制檯進行了檢查)。我能做什麼?如何讓用戶通過該方法添加圖書以及如何正確調用此方法?每一個幫助將不勝感激,謝謝!
是的,我已經嘗試過,但它仍然沒有任何東西( – Jakov
你可以檢查日誌,如果這個動作被稱爲? –
是的,它可以與管理員和是的,它被稱爲 – Jakov