Rails:DropDown选择控制器操作

美好的一天,我有这个表单视图/ startseites / index.html.erb,我在我的people_controller中指定了一个方法,她没有去。 我准备了一些幽灵代码来理解。 我想将带有button_to标记的下拉列表中的条目提供给控制器操作checkValid。 我想要根据数据库validation条目。 我必须从表中读取和写入。 我希望它足够清楚。

class PeopleController < ApplicationController def checkValid @trainerName = params[:trainer_name] @sportlerName = params[:sportler_name] @trainerPID = params[:trainer_pid] @sportlerPID = params[:sportler_pid] #checks if sportlerID is null @person = Person.find(params[:sportler_pid]) id = Person.sportler_id if id = nil then Person.sportler_id = params[:trainerPID] else puts "Sportler can have only one Trainer!" end end ... 

view / startseites / index.html.erb:这段代码不行

这应该将下拉选择发送到控制器操作checkValid()。 我该如何使用参数?

   "checkValid", :controller =>"people" %>** 

  
Jeder Sportler kann ein Trainer haben.
Trainer "Trainer") %>
Sportler "Sportler") %>
** "checkValid", :controller => "people") %>**

我将此行添加到我的路线中

  match '/people/checkValid', :controller => 'people', :action => 'checkValid' 

但是:没有路由匹配{:controller =>“people / checkValid”,:method =>:checkValid}

不,我认为它会发生

模板丢失了

  Missing template people/checkValid, application/checkValid with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "C:/Users/jord/testmood/app/views" 

Missing template错误指的是缺少视图。 您应该在app/views/people/目录中有check_valid.html.erb视图文件。

此外,在应用程序目录中的任何位置的命令行上运行rake routes 。 您将收到routes.rb文件生成的列表路由。 如果people#checkValid存在,你可以仔细检查那里。

顺便说一下,您可能希望将checkValid更改为check_valid以便遵循Rails中的操作的命名约定。