Изменение текста на submit_tag - PullRequest
0 голосов
/ 04 сентября 2018

Я работаю над приложением регистрации для презентаций в Ruby on Rails. Таким образом, я отображаю список доступных презентаций, а в последнем столбце отображается кнопка для регистрации для этой конкретной презентации.

<table class="table">
  <thead class="thead-dark">
    <tr>
      <th scope="col">Name</th>
      # ...
    </tr>
  </thead>
  <tbody>
    <tr>
    <% @presentations.each do |pres| %>
      <td scope="row"><%= pres.Name %></td>
      # ...
      <td scope="row">
        <% unless @current_student.Selected == pres.Titel %>
        <%= form_tag students_select_path do %>
          <%= submit_tag "Choose", class: "btn", value: pres.Title %>
        <% end %>
      </td>
    </tr>
  </tbody>
</table>

Я бы хотел, чтобы кнопка произнесла "Choose", а затем отправил параметр pres.Title в функцию, которую я определил. По какой-то причине кнопка в таблице показывает значение pres.Title, а не "Choose". Как это можно исправить?

Текущая рабочая реализация:

def addtodb
  @student = Student.find_by(id: session[:student_id])
  if @student.Selected == nil
    prestitle = params[:commit]
    @schueler.update_attribute(:Selected, prestitle)
    redirect_to students_select_path
  end
end

1 Ответ

0 голосов
/ 04 сентября 2018

Я бы хотел, чтобы кнопка сказала «Выбрать», а затем отослала параметр pres.Title для функции, которую я определил. По какой-то причине Кнопка в таблице показывает значение pres.Title, а не «Выбрать»

submit_tag (value = "Сохранить изменения", options = {}) public

<%= submit_tag "Choose", class: "btn", value: pres.Title %>

не создает кнопку отправки с текстом Выберите , поскольку вы переопределяете значение как pres.Title. Вам нужно изменить его на

<%= submit_tag "Choose", class: "btn" %>

И вместо этого вы можете использовать hidden_field_tag для этой цели, например

<%= form_tag students_select_path do %>
  <%= hidden_field_tag 'prestitle', pres.Title %>
  <%= submit_tag "Choose", class: "btn" %>
<% end %>

Наконец, получите доступ к значению с помощью params[:prestitle] в контроллере.

Примечание: Как одно из соглашений Rails, имена атрибутов должны иметь строчные буквы . Я рекомендую вам следовать этому в вашем приложении.

...