我现在真的感到非常困惑和烦恼.
我正在运行Rails 2.3.5
我View/pages/customers.html.erb只是:
<% form_tag do %>
First Name
<%= text_field_tag :firstName, params[:firstName] %>
Last Name
<%= text_field_tag :lastName, params[:lastName] %>
<%= submit_tag "Enter" %>
<%end%>
Run Code Online (Sandbox Code Playgroud)
我Models/customer.rb只是:
class Customer < ActiveRecord::Base
attr_accessible :firstName, :lastName
end
Run Code Online (Sandbox Code Playgroud)
我Controller/pages_controller有
class PagesController < ApplicationController
def custs
@cust = Customer.new(params[:firstName], params[:lastName])
@cust.save
end
end
Run Code Online (Sandbox Code Playgroud)
所以当你看到我只是想从前端输入两个字段然后将它们保存到数据库中.但是,每当我加载我的页面时,它会给我错误:
错误的参数数量(2表示1)pages_controller.rb:3:在
new' pages_controller.rb:3:incusts中
奇怪的是,当我使用沙箱脚本/控制台时,我能够很好地插入数据.
这里发生了什么?请有人解释一下!
http://apidock.com/rails/ActiveRecord/Base/new/class这里是对新功能的一点解释.关键部分 - "传递一个哈希,键名匹配相关的表列名".而不是@cust = Customer.new(params[:firstName], params[:lastName])你应该拥有的@cust = Customer.new(:firstName => params[:firstName], :lastName => params[:lastName]).这应该可以解决问题.