【问题标题】:Params not being passed to new action参数未传递给新操作
【发布时间】:2015-11-17 09:08:56
【问题描述】:

我在视图中有一个表单:

<%= 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 新手,但我不知道为什么会发生这种情况,而且我没有通过辅助方法得到什么。

知道为什么会这样吗?

【问题讨论】:

  • 只是出于兴趣,您为什么要使用表单来生成GET 请求?这可能只是一个标准的链接标签,样式化为一个按钮。
  • button_to helper 做同样的事情

标签: ruby-on-rails forms parameters


【解决方案1】:

由于您尝试传递 chichi 参数,因此您可以使用 button_to,它基本上会创建一个空表单(您可以传递参数):

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

【讨论】:

    【解决方案2】:

    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 %>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2021-10-18
      相关资源
      最近更新 更多