Как получить значение Checkbox в ruby ​​на рельсах - PullRequest
0 голосов
/ 30 ноября 2018

Я хочу получить значения флажков, чтобы установить параметры http-запроса для API-интерфейса restful.Я новичок в веб-разработке, и у меня проблемы с ruby ​​на рельсах 5.1

По сути, у меня есть два вида: - один, где вы можете поставить / снять два флажка, а затем нажать кнопку, которая делает некоторые вызовы API иотправить вас на второй вид.- второе предназначено только для отображения информации об API.

В первом представлении мне удается сделать кнопку, которая «вызывает» вызов API, и информация об API корректно отображается во втором.Теперь у меня есть проблема, чтобы добавить параметры, с двумя флажками, к запросу.Мои флажки всегда возвращают мне «ноль» в параметрах [].

Я ссылался на этот раздел документа rails: https://guides.rubyonrails.org/form_helpers.html#helpers-for-generating-form-elements и на несколько других вопросов stackoverflow, не понимая, что я пропустил.

вот код контроллера:

class IndexController < ApplicationController
  include HTTParty

  def button_state
  end

  def display_state
    require 'open-uri'
    require 'json'

    # this part is for checking my checkbox values, they are always nil

    @t1 =  params[:param_name1]
    @t2 =  params[:param_name2]
    @url_test = 'www.bkbahbqiv.com/tamere?test1=' << @t1.to_s << '&test2=' << @t2.to_s

    # other part related to the API calls
    ...
  end
end

и вот мой код просмотра:

<h1>Check/Uncheck the boxes and click on the button to get results</h1>
<div class="checkbox">
  <td>
  <%= label_tag(:param_name1, "test1") %>
  <%= check_box_tag(:param_name1) %>
  </td>
</div>
<div class="checkbox">
  <td>
  <%= label_tag(:param_name2, "test2") %>
  <%=  check_box_tag(:param_name2) %>
  </td>
</div>

<%= button_to "go to display_state", display_state_path, :method => :get %>

Я просто добавлю, что не хочу сохранять значения флажковв базе данных.

Заранее спасибо всем, кто мне помогает :)

1 Ответ

0 голосов
/ 06 декабря 2018

Следующее предложение обязательно подойдет вам.Пожалуйста, измените ваш взгляд на что-то ниже. Вам необходимо использовать тег для решения вашей проблемы

<%= form_tag display_state_path, :method => 'get' do %>
  <div class="checkbox">
    <td>
      <%= label_tag(:param_name1, "test1") %>
      <%= check_box 'param_name1', 'result', {}, 1, 0 %>
    </td>
  </div>
  <div class="checkbox">
    <td>
      <%= label_tag(:param_name2, "test2") %>
      <%= check_box 'param_name2', 'result', {}, 1, 0 %>
    </td>
  </div>
  <%= submit_tag "go to display_state" %>
<% end %>

И вы можете получить доступ к значениям флажков в параметрах

params[:param_name1][:result]
params[:param_name2][:result]
...