我在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
我可以使用group_add
路径导航到该页面,这是GET
请求,但是当我点击此表单上的提交(应该是帖子请求)时,没有任何事情发生。
如果表单没有保存在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 %>
答案 0 :(得分:0)
在您的示例代码中,您已将get
和post
定向到usergroups#new
,但您应将post
发送至usergroups#create
。