Я использую приложение rails 3.
У меня проблема. Как я буду сохранять данные в моем сеансе в моей базе данных? Я хочу сохранить сеанс регистрации и проверки в базе данных с типом данных datetime.
Контроллер:
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
помогите .. пожалуйста. спасибо.
из моего контроллера приложений:
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 для моей базы данных.
вот модель моей корзины
класс Корзина : уничтожить
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