我在获取多个 ID 以正确保存到我的数据库中时遇到问题。我有一个包含两个参数的列表:列表 ID 和价格。
我尝试更改控制器以接受 current_user,但没有运气。我尝试过更改模型,也尝试过手动创建列表,同时为其提供 user_id 和 book_id(检查它是否确实提供了正确的书籍和用户 ID)。在手动清单中,我还尝试使用不带 @ 符号的变量名,虽然没有错误,但我仍然无法将值存储在数据库中
我的上市模式:
class Listing < ActiveRecord::Base
belongs_to :user
belongs_to :book
has_one :order
belongs_to :user, class_name: 'Listing'
attr_accessible :listing_id, :price
end
我的用户模型:
class User < ActiveRecord::Base
has_many :books
has_many :listings
belongs_to :creator, class_name: 'User'
end
我的书模型:
class Book < ActiveRecord::Base
has_one :status
has_one :listing
belongs_to :user
attr_accessible :condition, :isbn, :location, :title, :weight, :comment, :description, :price
validates :isbn, :isbn_format => true
end
我的列表控制器中的创建功能
def create
@listing = Listing.new(params[:listing])
@listing.user_id = current_user_id
respond_to do |format|
if @listing.save
format.html { redirect_to @listing, notice: 'Listing was successfully created.' }
format.json { render json: @listing, status: :created, location: @listing }
else
format.html { render action: "new" }
format.json { render json: @listing.errors, status: :unprocessable_entity }
end
end
end
我如何尝试手动创建 user_id 和 book_id 列:
<b><%= "Returned: "+doc.css("Ack").text %> </b> #returns if listing was a failure or success
<b><%= "Listing ID: "+doc.css("ItemID").text %></b> #returns the listing itemID
<% @book = Book.find_by_id(params[:book_id_num]) %><br /> #passed from a previous page
<% @user = User.find_by_id(current_user.id) %>
<%= @book.id %> #successfully displays the correct book id on the web page
<%= @user.id %> #successfully displays the id of the current_user
<% Listing.create(:listing_id => doc.css("ItemID").text, :price => price, :book_id => @book.id, :user_id => @user.id)%>
但是这样做只会创建一个带有listing_id和价格的listing。
我被困了一段时间,不知道如何继续。我也不太熟悉数据库的功能。谁能帮我吗?