Ruby on rails 第二个参数内容\标记轨道

Ruby on rails 第二个参数内容\标记轨道,ruby-on-rails,Ruby On Rails,我使用的表单中有一个下拉列表 <%= f.select(:visitable_id) do %> <% @visitors.each do |visitor| %> <%= content_tag(:option, visitor.name, value: visitor.id, data: {:type => visitor.class.name.to_s} ) %> <% end %> <%

我使用的表单中有一个下拉列表

<%= f.select(:visitable_id) do %>
      <% @visitors.each do |visitor| %>
        <%= content_tag(:option, visitor.name, value: visitor.id, data: {:type => visitor.class.name.to_s} ) %>
      <% end %>
 <% end %>

visitor.class.name.to_})%>
提交时,我在控制器中获得可访问的\u id。但我也希望接收content_标记中数据值的数据。:data:{:type=>visitor.class.name.to\u s}


如何访问控制器中的第二个值?任何帮助都将不胜感激

HTML5数据属性不随表单一起发送。除了输入的名称和值之外,没有其他内容

您可以通过将两个值传递给单个选项来解决此问题

<%= f.select(:visitable_id) do %>
  <% @visitors.each do |visitor| %>
    <%= content_tag(:option, visitor.name, value: "#{visitor.class.name}=visitor.id") %>
  <% end %>
<% end %>

但请确保将klass的可接受值列为白名单,以避免恶意用户可以查询任何模型的漏洞。

HTML5数据属性不会随表单一起发送。除了输入的名称和值之外,没有其他内容

您可以通过将两个值传递给单个选项来解决此问题

<%= f.select(:visitable_id) do %>
  <% @visitors.each do |visitor| %>
    <%= content_tag(:option, visitor.name, value: "#{visitor.class.name}=visitor.id") %>
  <% end %>
<% end %>

但请确保将
klass
的可接受值列入白名单,以避免恶意用户可以查询任何模型的漏洞。

谢谢!正是我要找的!非常感谢。正是我要找的!