Вот результат:ноль
Parameters: {"action"=>"confirm", "id"=>"1", "controller"=>"sites"}
User Columns (2.2ms) SHOW FIELDS FROM `users`
User Load (0.3ms) SELECT * FROM `users` WHERE (`users`.`id` = 2) LIMIT 1
School Load (0.3ms) SELECT * FROM `schools` LIMIT 1
Rendering template within layouts/application
Rendering sites/confirm
ActionView::TemplateError (You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.map) on line #4 of app/views/sites/confirm.erb:
1:
2: <%
3: form_for(:site, :url => {:action => :confirm}) do
4: select_tag(:id, options_from_collection_for_select(@confirm, 'id', 'confirm'))
5: end
6: %>
Даже когда я сделал: @confirm = Request.find (: все) в контроллере, он по-прежнему возвращается сообщение об ошибке.
Сайты управления: вид
def confirm
x = current_user.contact.contactable
@confirm = Request.find(:all, :conditions => ["location_id = ?", x])
end
Confirm в папке сайтов:
<%
form_for(:site, :url => {:action => :confirm}) do
select_tag(:id, options_from_collection_for_select(@confirm, 'id', 'confirm'))
end
%>
Любая идея, почему? Ошибка возникает в строке 4. Я считаю, что он считает, что @confirm не является массивом, хотя это должно быть потому, что в контроллере я передаю два элемента из таблицы в него. Я сделал options_from_collection_for_select параметры, аналогичные параметрам в руководстве по направляющим. В принципе, я хочу показать список опций для выбора на основе того, соответствуют ли эти параметры местоположению текущего пользователя. Спасибо за любые предложения.
В выводе, который вы опубликовали, похоже, что он загружает только пользовательские и школьные модели из базы данных, но не модель запроса. Однако я ничего не вижу о модели школы в вашем действии контроллера-регулятора. Это то, что контактирует? –
Также в нем говорится: Образцовый шаблон в макетах/приложении. Есть ли способ переопределить это? – JohnMerlino
Да, в действии вашего контроллера вы можете указать, какой шаблон использовать с: render: template => "directory/filename_without_extension" –