简体   繁体   English

Rails-将表单提交给控制器操作

[英]Rails - Submit form to controller action

I have ProjectsController and i added there a method called search_for_members i want this method to update a div with members names when the user hit submit via ajax the problem here is that i'm getting routing error 我有ProjectsController,我在那里添加了一个名为search_for_members的方法,我希望该方法在用户通过Ajax命中提交时用成员名称更新div,这里的问题是我遇到了路由错误

No route matches [POST] "/projects/47" 没有路由匹配[POST]“ / projects / 47”

Any help? 有什么帮助吗?

routes.rb 的routes.rb

  resources :projects do
     resources :user_stories
     get '/projects/:project_id/searchformembers' => 'projects#searchformembers'
  end

views/projects/show 意见/项目/节目

      <%= form_tag :url => {:action => "search_for_members"} , :method => 'get', :remote => true do%>
         <div>
          <%= text_field_tag :search, params[:search], :class => 'form-control', :placeholder => 'User name'%>
        </div>
        <%= submit_tag "Add user", :name => nil, :class => "btn btn-info"%>
      <% end%>

      <div id="members">
        <%= render @users %> 
      <% end %>

projects_controller projects_controller

 def search_for_members
   if (params[:search])
     @users = User.search(params[:search],   @project).page(params[:page]).per_page(4) 
  else 
     @users = @project.users
  end    
  respond_to do |format|
   format.js
  end 
 end

Your route definition is wrong and does not match to your controller or form_for usage. 您的路线定义有误,与您的控制器或form_for用法不匹配。 Change your route like this: 像这样更改路线:

resources :projects do
  get :search_for_members, :on => :member
end

And then update your form_for definition in your view like this: 然后像这样在视图中更新form_for定义:

  <%= form_tag search_for_members_project_path(@project), :method => 'get', :remote => true do%>

And you should be all set. 而且你应该准备好了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM