未在表单

时间:2015-05-20 23:22:01

标签: ruby-on-rails rspec simple-form

我使用的是rails 4和rspec 2.我有一个发送电子邮件的simple_form。

<%= 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_id]和params [:student]路由到pro_users控制器中的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,因此当请求规范通过时它会令人不安,但它在浏览器中不起作用!

0 个答案:

没有答案