【问题标题】:Changing text on submit_tag更改 submit_tag 上的文本
【发布时间】:2019-02-09 16:16:51
【问题描述】:

我正在为 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】:

我想让按钮说“选择”,然后发送参数 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 约定之一,属性名称应该是小写。我建议您在您的应用中关注它。

【讨论】:

  • 谢谢你的工作:)。现在的问题是值是这样通过的:{:value =&gt; "(String I need)"}。你知道规避这个问题的方法吗?
  • @EdwardLancaster 您可以发布单击提交时出现在服务器日志中的参数哈希吗?
  • Parameters: {"utf8"=&gt;"✓", "authenticity_token"=&gt;"PsyvuDNCpEoSkva4pQcM3xkMe2KUt6m+UV+qkhTJCeIWiV3VmP6jpuu32wK/v/+YLTXt4lgdBSYmQqxaN7I5+g==", "title"=&gt;"{:value=&gt;\"The Future of Cars\"}", "commit"=&gt;"Wählen"}
  • 好的,你可以通过params[:title][:value]访问它
  • 我尝试调用它,但是它在我的控制器中吐出一个类型错误,说“没有将符号隐式转换为整数”。
猜你喜欢
  • 2011-05-14
  • 2011-02-12
  • 1970-01-01
  • 1970-01-01
  • 2011-07-31
  • 2017-07-13
  • 2017-04-18
  • 2021-10-02
相关资源
最近更新 更多