Я работаю над многошаговой формой для секции размещения заказа, которая использует сеанс session[:order_params]
для хранения всех входных данных формы перед отправкой.
Мне нужно иметь доступ к определенному параметру (земле) изсеанс, чтобы запросить другой ресурс (shippingservice) при переходе назад в форме.
В моем orders_controller.rb
у меня есть:
@shippingservices = @cart.available_shipping_services.joins(:lands).where(:lands => {:id => params[:id]})
, но необходимо указать землю.идентификатор из session[:order_params]
.
При использовании session[:order_params]
я получаю ActiveRecord::StatementInvalid in Orders#create
:
Mysql::Error: Unknown column 'id.ship_to_last_name' in 'where clause': SELECT `shippingservices`.* FROM `shippingservices`
INNER JOIN `zones` ON `zones`.`id` = `shippingservices`.`zone_id`
INNER JOIN `lands_zones` ON `lands_zones`.`zone_id` = `zones`.`id`
INNER JOIN `lands` ON `lands`.`id` = `lands_zones`.`land_id`
WHERE `id`.`ship_to_last_name` = 'Smith'
AND `id`.`ship_to_address` = 'Somewherestreet'
AND `id`.`ship_to_city` = 'Nowheretown'
AND `id`.`ship_to_postal_code` = '99999'
AND `id`.`phone_number` = 'some number'
AND `id`.`shippingservice_id` = '34'
AND `id`.`email` = 'someone@example.tld'
AND `id`.`land_id` = '85'
AND `id`.`ship_to_first_name` = 'John'
AND (weightmin <= 200 AND weightmax >= 200 AND heightmin <= 12 AND heightmax >= 12 AND shippingservices.shippingcarrier = '1') AND (lengthmax >= 210 AND widthmax >= 149)
Поскольку присутствует правильный land_id, мне интересно, как предоставить только это значение длязапрос.
Заранее спасибо!