对于Rails中的同一个路由,我需要一个get
和post
方法,所以我创建了这两个方法。
group_add GET /groups/:group_id/add(.:format) usergroups#new
POST /groups/:group_id/add(.:format) usergroups#new
这是在我的Routes.rb
文件中
resources :groups do
get 'add', to: 'usergroups#new', controller: 'usergroups'
post 'add', to: 'usergroups#new', controller: 'usergroups'
end
我可以导航到包含GET
请求的group_add
路径的页面,但是当我单击此表单上的提交(应该是post请求)时,什么也没有发生。
它会重定向回表单,如果表单没有保存在create方法中,就会发生这种情况。参数在服务器日志中传递,但是用户没有被添加到组中。你知道为什么这篇文章不会发布吗?
<%= form_for @usergroup, url: group_add_path do |form| %>
<div class="row">
<div class="col-md-8">
<div class="form-group">
<%= form.label :user_id %>
<%= form.collection_select :user_id, User.order(:email), :id, :email, {}, { :id => 'user_select', placeholder: 'Test' } %>
</div>
</div>
</div>
<div class="form-group">
<%= form.label :group_id %>
<%= form.collection_select :group_id, Group.all, :id, :group_name, {}, { :id => 'group_select', placeholder: 'Test' } %>
</div>
<%= form.submit 'Add user', class: 'btn btn-primary' %>
<% end %>
发布于 2018-02-20 02:19:30
在您的示例代码中,您已经将get
和post
都定向到usergroups#new
,但是您应该将post
发送到usergroups#create
。
https://stackoverflow.com/questions/48871472
复制相似问题