参数未传递给新操作
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 } %>
我在视图中有一个表单:
<%= 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 } %>