Передать значение td html таблицы контроллеру rails - PullRequest
0 голосов
/ 15 марта 2019

В моем html я отображаю некоторые данные из двух таблиц. Я предоставил кнопку редактирования для каждой строки таблицы. Когда я нажимаю на него, он должен проверить, существует ли имя в таблице1 или таблице2, и взять все детали этого конкретного имени.

HTML:

<div class="col-md-12">
  <h5 style="text-align: center;">List of SNMP OIDs</h5>
  <table id="myPersonTable" class="table table-striped" >
    <thead>
      <tr>
        <th>Person Name</th>
        <th>Edit</th>
        <th>Delete</th>
      </tr>
    </thead>
    <tbody id="table_body">
      <%  @all_persons.each do |person|%>
        <tr>
          <td>
            <%= person['name'] %>
          </td>
          <td>
            <%= link_to '<button type="button" class="btn btn-info">Edit</button>'.html_safe, edit_oid_path(person['id'])%> 
          </td>
          <td>
            <%= form_tag(contoller: "configuration", action: "delete_person") do%>
              <%= hidden_field_tag(:person_id, person['id'])%>
              <%=submit_tag "Delete", class: "btn btn-danger", data: {confirm: "Are you sure?"}%>
            <% end %>
          </td>
        </tr>
      <% end %>
    </tbody>
  </table>
</div>

Контроллер рельсов:

def edit
  person_f =  Person.find_by(name: params[:name])
  person_s= HardPerson.find_by(name: params[:name])
  if person_f.present?
    @person = Oid.find(params[:id])
  elsif person_s.present?
    @oid = HardPerson.find(params[:id])
  end
end

Вот проблема: я нажимаю кнопку редактирования имени человека от person2 таблица с id = 1. Этот идентификатор существует в таблицах person1 и person2. Вместо того, чтобы получать данные от person2, он проверяет этот идентификатор в таблице person1 и получает значения для id = 1 данные о персоне из таблицы person1

Здесь в контроллере params[:name] получает нулевое значение. Помогите мне получить params[:name] в моем контроллере рельсов

Ответы [ 2 ]

0 голосов
/ 18 марта 2019

Немного трудно понять, в чем твоя проблема, но я попробую.Я прав, что вы хотите видеть значение из <%= person['name'] %> как params[:name] внутри действия редактирования?Просто передайте его как дополнительный аргумент в помощник пути:

<%= link_to '<button type="button" class="btn btn-info">Edit</button>'.html_safe, 
  edit_oid_path(person['id'], name: person['name'])%>
0 голосов
/ 15 марта 2019

Чтобы получить params[:name] в вашем контроллере, используйте опцию :param в ваших маршрутах, чтобы переопределить идентификатор ресурса по умолчанию :id

resources :people, param: :name

Это позволит вам использовать:

Person.find_by(name: params[:name])

Имейте в виду, что вам может потребоваться переопределить ActiveRecord::Base#to_param связанной модели для создания URL.

См. 4.10 Переопределение параметров именованного маршрута для получения дополнительной информации.

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