参数未传递给新操作

Params not being passed to new action

我在视图中有一个表单:

<%= form_tag(new_admin_course_path(chichi: @provider.id), {method: :get}) do %>
    <%= submit_tag I18n.t('views.courses.index.add_new') %>
<% end %>

@provider.id 等于 1(用 Pry 检查)。

new_admin_course_path 降落在 courses_controller#new。从操作本身(在 binding.pry 的帮助下)我得到了 params 的内容,这就是我发现的:

pry(#<Admin::CoursesController>)> params
=> {"utf8"=>"✓", "commit"=>"Add course", "controller"=>"admin/courses", "action"=>"new"}

我不是 Rails 的新手,但我不知道为什么会这样,而且我没有得到我通过辅助方法传递的内容。

知道为什么会这样吗?

Use This one:

<%= form_tag(new_admin_course_path(chichi: @provider.id), method: :get) do %>
    <%= submit_tag I18n.t('views.courses.index.add_new') %>
<% end %>

因为你试图传递你的 chichi 参数,你可以使用 button_to,它基本上创建一个空表单(你可以传递参数):

<%= button_to I18n.t('views.courses.index.add_new'), new_admin_course_path, method: :get, params: { chichi: @provider.id } %>