ошибка обмена для выбранной таблицы - PullRequest
0 голосов
/ 25 октября 2010

Я пытаюсь добавить обработчик onchange, чтобы увидеть, какая опция выбора в данный момент выбрана, и поместить ее в файл. Как я могу это сделать?

<select id="subtable" name="subtable" size="20" style="width: 400px"> 
<%= options_from_collection_for_select(@hauses, 'id', 'timebuild', @hauses.first.id), {},  {:onchange => catch()} ) %>
</select> 

где находится контроллер

def index
@hauses = Hauses.find(:all)
end

def catch
@hs = Hauses.find(params[:hauses_id])
file = File.new("catch.txt","ab")
file.puts(@hs)
file.close
end

Показывает ошибку неопределенного метода `catch '

Спасибо за любые рекомендации

1 Ответ

0 голосов
/ 25 октября 2010
  • Представление не может вызывать методы контроллера, поэтому он не может найти метод catch.
  • Вы можете поместить метод в помощник, но это будет означать, что этот метод будет возвращать код Javascript, который будет заполнен в атрибуте onchange.
  • Если вы добавите {: onchange => 'catch ()'}, это будет искать метод Javascript с именем catch.

Onchange будет выполняться в браузере, поэтому, если вы хотите вызвать действие «catch», когда пользователь изменяет значение поля select, вам нужно будет создать вызов AJAX, выполняя это. Смотрите AJAX на Rails , чтобы начать.

Кроме того, атрибут onchange должен быть включен в тег выбора, а не в параметры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...