美好的一天,我有这个表单视图/ startseites / index.html.erb,我在我的people_controller中指定了一个方法,她没有去。我准备了一些幽灵代码来理解。我想将带有button_to标记的下拉列表中的条目提供给控制器操作checkValid。我想要根据数据库验证条目。我必须从表中读取和写入。我希望它足够清楚。
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()。我该如何使用参数?
<%=button_to( "Zuordnung erstellen", :action => "checkValid", :controller =>"people" %>**
<table>
<tr>
<td colspan="3">
Jeder Sportler kann ein Trainer haben. </br>
</td>
</tr>
<tr>
<td>Trainer</td>
<td>
<%= collection_select(:trainer, :trainer_id, Trainer.all, :id, :name) %>
</td>
<td>
<%= link_to 'Neuer Trainer', new_person_path(:type => "Trainer") %>
</td>
<tr>
<tr>
<td>Sportler</td>
<td>
<%= collection_select(:sportler, :sportler_id, Sportler.all, :id, :name) %>
</td>
<td>
<%= link_to 'Neuer Sportler', new_person_path(:type => "Sportler") %>
</td>
<tr>
<tr>
<td></td>
<td></td>
<td>
**<%=button_to( "Zuordnung erstellen", :action => "checkValid", :controller => "people") %>**
</td>
<tr>
</table>
我将此行添加到我的路线
match '/people/checkValid', :controller => 'people', :action => 'checkValid'
但是:没有路由匹配{:controller =&gt;“people / checkValid”,:method =&gt;:checkValid}
不,我认为它会发生,但
缺少模板
Missing template people/checkValid, application/checkValid with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in: * "C:/Users/jord/testmood/app/views"
答案 0 :(得分:1)
Missing template
错误是指缺少视图。您应该在check_valid.html.erb
目录中有app/views/people/
个查看文件。
此外,在应用程序目录中的任何位置的命令行上运行rake routes
。您将收到routes.rb文件生成的列表路由。如果people#checkValid
存在,您可以仔细检查那里。
顺便说一下,您可能希望将checkValid
更改为check_valid
,以便遵循Rails中操作的命名约定。