我运行 RoR 3.2.0.rc1、Ruby 1.9.2,并且使用 Ubuntu 11.10
LookController#at 中有一个错误名称 => ArgumentError
参数数量错误(0 代表 1)
Rails.root: /home/rene/ruby_dev/ch05/txt2fields
Application Trace | Framework Trace | Full Trace
app/controllers/look_controller.rb:3:in 'text1'
app/controllers/look_controller.rb:10:in 'at'
请求
参数:
{"utf8"=>"✓",
"authenticity_token"=>"5lxmVZMjEw4ifKaZHgevnr8hnsIyk+wD0WmZC71KMbc=",
"text1"=>"René",
"text2"=>"63",
"method"=>"post"}
look_controller.rb
class LookController < ApplicationController
def text1(string)
end
def trxt2(string)
end
def at
@data = params[text1]
@age = params[text2]
end
def input
end
end
输入.html
<!DOCTYPE html>
<meta charset="UFT-8"/>
<head>
<meta http-equiv="content-type" content="text/html"; charset="UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
<!-- ... autres mentions de l'entête de fichier ... -->
</head>
<html>
<head>
<title>Projet 3textfields, fichier input.rhtml</title>
</head>
<body>
<h1>Les champs de saisie (champs de texte) : Exercice # 3</h1>
<br>
Cette application Ruby on Rails lit du texte saisi.
<br>
<br>
Elle transmet la variable au modele.
<br>
<%= form_tag :action => 'at', :method => :post%>
<br>
Votre nom.
<br>
<%= text_field_tag "text1", nil, :size => 30%>
<br>
Votre age.
<br>
<%= text_field_tag "text2", nil, :size => 30%>
<br>
<br>
<input type="submit"/>
<%=form_tag %>
</body>
</html>
at.html
<!DOCTYPE html>
<head>
<meta http-equiv="content-type" content="text/html"; charset="utf8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="Content-Style-Type" content="text/css">
<!-- ... autres mentions de l'entête de fichier ... -->
</head>
<html>
<head>
<title>Les champs de saisie : Exercice #2</title>
</head>
<body>
<h1>Les champs de saisie ( Exercice #2 at.html )</h1>
<br>
<br>
Vous vous appelez : <%= @data %>.
<br>
Vous avez : <%= @age %> ans.
<br>
<br>
</body>
</html>
当我在 input.html 中添加法语口音一个模式时出现错误
这是我的问题???
at
方法在不带任何参数的情况下调用 text1
和 text2
,就像错误消息所述 - 它们都被定义为采用单个参数。传递一个参数。
从参数来看,您似乎实际上想要检索请求参数:
def at
@data = params[:text1]
@age = params[:text2]
end
但很难说,因为你没有描述你实际上想要做什么。
我是一名优秀的程序员,十分优秀!