Rails - 将表单提交给控制器操作
Rails - Submit form to controller action
我有 ProjectsController 并在那里添加了一个名为 search_for_members 的方法 我希望此方法在用户通过 ajax 提交时用成员名称更新 div 这里的问题是我收到路由错误
No route matches [POST] "/projects/47"
有什么帮助吗?
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
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
您的路由定义错误,与您的控制器或 form_for
用法不匹配。像这样更改路线:
resources :projects do
get :search_for_members, :on => :member
end
然后像这样在您的视图中更新您的 form_for
定义:
<%= form_tag search_for_members_project_path(@project), :method => 'get', :remote => true do%>
你应该一切就绪。
我有 ProjectsController 并在那里添加了一个名为 search_for_members 的方法 我希望此方法在用户通过 ajax 提交时用成员名称更新 div 这里的问题是我收到路由错误
No route matches [POST] "/projects/47"
有什么帮助吗?
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
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
您的路由定义错误,与您的控制器或 form_for
用法不匹配。像这样更改路线:
resources :projects do
get :search_for_members, :on => :member
end
然后像这样在您的视图中更新您的 form_for
定义:
<%= form_tag search_for_members_project_path(@project), :method => 'get', :remote => true do%>
你应该一切就绪。