0
我正在使用rails 3應用程序。 我有一個問題。我將如何將數據保存到我的數據庫中?我想使用日期時間數據類型將簽入和簽出會話保存到數據庫。如何將數據從會話保存到數據庫?
控制器:
def step2
@cart = current_cart
checkin = params[:checkin]
checkout = params[:checkout]
@amenities = Amenity.available(checkin, checkout)
session[:checkin] = checkin
session[:checkout] = checkout
end
觀點:
<%= f.hidden_field :Transaction_Date, :value => Time.now %>
<%= f.hidden_field :rsv_type, :value => "Online" %>
<%= f.hidden_field :rsv_status, :value => "Pending" %>
<%= f.hidden_field :checkin, session[:checkin] %>
<%= f.hidden_field :checkout, session[:checkout] %>
<% end %>
即時得到這個錯誤:
NoMethodError
undefined method `merge' for "05/18/2011":String
幫助..請。謝謝。
從我的ApplicationController:
private
def current_cart
Cart.find(session[:cart_id])
rescue ActiveRecord::RecordNotFound
cart = Cart.create
session[:cart_id] = cart.id
cart
end
,當我把這些代碼:
@cart.checkin = DateTime.strptime(session[:checkin], "%m/d/%Y %I:%M:%S %p").to_time
@cart.checkout= DateTime.strptime(session[:checkout], "%m/d/%Y %I:%M:%S %p").to_time
@cart.save
我得到引發ArgumentError無效日期的錯誤。 ?:(我應該怎麼辦使用SQL Server 2005爲我的數據庫IM
這裏是我的車模型
級車<的ActiveRecord :: Base的 的has_many:line_items,:依賴=>:摧毀
def add_amenity(amenity_id)
current_item = line_items.where(:amenity_id => amenity_id).first
if current_item
return false
else
current_item = LineItem.new(:amenity_id => amenity_id)
line_items << current_item
end
current_item
end
def total_price
line_items.to_a.sum { |item| item.amenity.fee }
end
def payable
total_price * 0.50
end
end
即時通訊獲得另一個錯誤。 NoMethodError未定義的方法'checkin ='for# –
Crisgine
2011-05-18 01:29:16
@Crisgine - 你必須正確定義'@ cart',比如'@cart = Cart.where(「id =?」,params [:id]) .first'。當然,這裏假設你的'Cart'模型有一個'checkin'字段。 – sscirrus 2011-05-18 04:18:35
@Crisgine - 背景位 - 如果你只是做了@cart = Cart.where(「id =?」,params [:id])',你會得到一個關係,而不是一條記錄。即使關係只包含一條記錄,您也必須添加'first'來獲取可以開始更改屬性的內容。 – sscirrus 2011-05-18 05:07:40