我想要的是创建一个个人资料页面,我可以在其中查看以前的书字段,如果客户更改文本,那么它将创建一本新书。
我有以下具有 has_many 关系的模型
Customer -- ID, First, Last, Email
Book -- ID, Description
Book_Managers -- ID, Customer_id, Book_id, Visible
现在我拥有的是一个客户编辑,它允许我通过从更多模型(如书籍、电话等)进行渲染来查看多种表单......
这是我的客户控制器
def edit
@customer = Customer.find(params[:id])
if @customer.books.any?
@book = @customer.books.order("created_at DESC").first
else
@book = @customer.books.build
end
end
我想看到的是,如果我在预订表格时创建了一个新实例,我应该看到最后一个并且能够将“JavaScript 圣经”修改为“Java 圣经”,它不会更新它,而只是创建一个新的版本。现在,当去表格簿时,我什么也看不到。如果我出于某种奇怪的原因这样做,它只允许我更新。
class BooksController < ApplicationController
def create
@book = current_customer.books.build(params[:book])
if @book.save
flash[:success] = "Book Created"
redirect_to root_url
else
render 'customer/edit'
end
end
def index
@books = Book.all
end
def destroy
@book.destroy
redirect_to root_url
end
end
添加了这个
def update
@book = current_customer.books.build(params[:book])
if @book.save
flash[:success] = "Book Updated"
redirect_to root_url
else
render 'customer/edit'
end
结尾
对我的图书管理员来说,现在唯一的问题是我的关联,我似乎无法找到当前客户的任何图书。我的查询有问题吗?