Ruby on rails 未在表单中传递url的参数

Ruby on rails 未在表单中传递url的参数,ruby-on-rails,rspec,simple-form,Ruby On Rails,Rspec,Simple Form,我使用的是rails 4和rspec 2。我有一个发送电子邮件的简单表格 <%= simple_form_for @student, url: create_message_pro_users_path(student_id: @student), method: :get do |f| %> <%= f.input :subject, input_html: { size: 59 } %> <%= f.input :message, as: :t

我使用的是rails 4和rspec 2。我有一个发送电子邮件的简单表格

<%= simple_form_for @student, url: create_message_pro_users_path(student_id: @student), method: :get  do |f| %>
    <%= f.input :subject, input_html: { size: 59 } %>
    <%= f.input :message, as: :text, input_html: { class: 'text_block' } %>
    <%= f.button :submit, 'Update' %>
<% end %>

在测试环境中,这将使用params[:student\u id]和params[:student]路由到pro_用户控制器中的create_message操作,也就是说,它按照我的预期工作

在我的开发环境中,这会通过params[:student]路由到正确的操作,但没有params[:student_id],即它不起作用

如果我看一下浏览器源代码,相关部分是

<form novalidate="novalidate" class="simple_form edit_student" id="edit_student_1847" action="/pro_users/create_message?student_id=1847" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" />


出了什么问题,为什么它在我的测试中工作,而不是在实际的浏览器中。我目前的解决方案是将动作重构到我的学生控制器中,在那里我可以使用标准路由。但是,我使用BDD,因此当请求规范通过但在浏览器中不起作用时,它会令人不安

您正在创建资源吗?如果是这样的话,为什么表单
Post
ing不起作用?我不是在创建资源,主题和消息字段只是用来向学生发送电子邮件。