更改submit_tag上的文本

问题描述 投票:0回答:1

我正在为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
html ruby-on-rails ruby forms erb
1个回答
0
投票

我想按钮说“选择”,然后将参数pres.Title发送到我定义的函数。出于某种原因,表中的按钮显示pres.Title的值,而不是“Choose”的值

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约定之一,属性名称应为小写。我建议你在你的应用程序中关注它。

© www.soinside.com 2019 - 2024. All rights reserved.