【问题标题】:Pass html table td value to rails controller将 html 表 td 值传递给 rails 控制器
【发布时间】:2019-03-18 19:52:51
【问题描述】:

在我的 html 中,我显示了来自两个表的一些数据。我为表格的每一行提供了一个编辑按钮。当我点击它时,它必须检查该名称是否存在于 table1 或 table2 中并获取该特定名称的所有详细信息。

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>

Rails 控制器:

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 的表。此 id 存在于 person1 和 person2 表中。它不是从 person2 获取详细信息,而是检查 person1 表中的 id,并从 person1 表中获取 id=1 人员详细信息的值

这里在控制器params[:name] 中得到空值。帮助我在我的 Rails 控制器中获取params[:name]

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    要在控制器中获取params[:name],请在路由中使用:param 选项来覆盖默认资源标识符:id

    resources :people, param: :name
    

    这将允许您使用:

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

    请记住,您可能需要覆盖相关模型的 ActiveRecord::Base#to_param 才能构造 URL。

    更多信息请参见4.10 Overriding Named Route Parameters

    【讨论】:

      【解决方案2】:

      有点难以理解您的问题是什么,但我会尝试。您是否希望将&lt;%= person['name'] %&gt; 的价值视为params[:name] 内部编辑操作?只需将其作为附加参数传递给路径助手:

      <%= link_to '<button type="button" class="btn btn-info">Edit</button>'.html_safe, 
        edit_oid_path(person['id'], name: person['name'])%>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多