要将灵活数量的 ID 传递给 Rails 中的控制器,可以使用以下方法:
在路由中定义一个允许传递多个 ID 的参数,例如:
get 'example' => 'controller#action', as: :example
然后,在控制器中,可以使用 params
哈希来获取这些 ID:
def action
ids = params[:id]
# 处理 ids
end
在路由中定义一个允许传递逗号分隔的 ID 字符串的参数,例如:
get 'example/:ids' => 'controller#action', as: :example
然后,在控制器中,可以使用 split
方法将字符串分割为数组:
def action
ids_string = params[:ids]
ids = ids_string.split(',')
# 处理 ids
end
在视图中,可以使用表单来提交多个 ID,例如:
<%= form_tag example_path, method: :get do %>
<%= text_field_tag 'ids[]', nil, multiple: true %>
<%= submit_tag 'Submit' %>
<% end %>
然后,在控制器中,可以使用 params
哈希来获取这些 ID:
def action
ids = params[:ids]
# 处理 ids
end
在路由中定义一个允许传递查询参数的路径,例如:
get 'example' => 'controller#action', as: :example
然后,在视图中,可以使用链接来提交查询参数,例如:
<%= link_to 'Example', example_path(id: 1) %>
然后,在控制器中,可以使用 params
哈希来获取这些 ID:
def action
ids = params[:id]
# 处理 ids
end
这些方法都可以实现将灵活数量的 ID 传递给 Rails 中的控制器。具体使用哪种方法取决于具体的应用场景和需求。
领取专属 10元无门槛券
手把手带您无忧上云