Это мой index.html.haml:
= stylesheet_link_tag 'user'
.title
%h1 Port Testing
= form_tag('port_testing/test', method: 'get') do
= text_field_tag :hostname, 'localhost', size: 50
= check_box_tag('Port 80', '80')
= label_tag('80')
= check_box_tag('Port 443', '443')
= label_tag('443')
= check_box_tag('Port 28009', '28009')
= label_tag('28009')
= check_box_tag('Port 2195', '2195')
= label_tag('2195')
%button(type="submit") Test
В моем route.rb у меня есть это:
match 'port_testing/test', :controller => :port_testing, :action=> :test
Это мой port_testing_controller.rb:
class PortTestingController < ApplicationController
def index
end
def test
puts "\n"
puts @params["hostname"]
end
end
Прямо сейчас, когда я нажимаю кнопку «Тест», я получаю это:
Запуск GET "/ port_testing / test? Utf8 =% E2% 9C% 93 & hostname = localhost" для 127.0.0.1
в 2012-03-07 13:51:33 -0500
Обработка PortTestingController # test как HTML
Параметры: {"utf8" => "G £ ô", "hostname" => "localhost"}
Выполнено 500 Внутренняя ошибка сервера в 4ms
NoMethodError (У вас есть нулевой объект, когда вы его не ожидали!
Возможно, вы ожидали экземпляр Array.
Произошла ошибка при оценке nil. []):
app / controllers / port_testing_controller.rb: 7: в `test '
Предоставленный поставщик / bundle / jruby / 1.9 / gems / actionpack-3.1.2 / lib / action_dispatch / middl
eware / templates / rescues / _trace.erb (6.0ms)
Предоставленный поставщик / bundle / jruby / 1.9 / gems / actionpack-3.1.2 / lib / action_dispatch / middl
eware / templates / rescues / _request_and_response.erb (3,0 мс)
Предоставленный поставщик / bundle / jruby / 1.9 / gems / actionpack-3.1.2 / lib / action_dispatch / middl
eware / templates / rescues / Diagnics.erb в пределах rescues / layout (155.0ms)
Как передать контроллеру, какие флажки отмечены вместе с тем, что введено в текстовое поле?