我的路线
TerritoryManagement::Application.routes.draw do
get "new" => "territories#new", :as => "new"
root :to => "territories#new"
resources :territories
resources :users
end
我的模特
class Territory < ActiveRecord::Base
validates :name, :presence => true, :uniqueness => true
attr_accessor :name
end
我的控制器
class TerritoriesController < ApplicationController
def index
@territories = Territory.all
end
def show
@territory = Territory.find(params[:id])
end
def new
@territory = Territory.new
end
def create
@territory = Territory.new(params[:territory])
if @territory.save
redirect_to root_url, :notice => "Product successfully created!"
else
render "new"
end
end
end
我的观点
<%= form_for(@territory) do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>`
我的数据库 由于某种原因,该应用程序正在生成空记录...
sqlite> select * from territories;
1||2011-08-21 09:44:43.611946|2011-08-21 09:44:43.611946
任何想法出了什么问题?
答案 0 :(得分:3)
你将attr_accessor与attr_accessible混淆。
编辑:
attr_accessor是一种为给定输入符号创建getter和setter的方法。如果您正在重写数据库属性,那么在ActiveRecord模型中使用它肯定不是一个好主意。我不能说我的头脑会发生什么,但ActiveRecord肯定是行为不端的。您的名称属性是我认为您的地区表的字段,并且使用rails 3您必须声明您希望通过批量分配来访问哪些字段。请参阅文档:http://api.rubyonrails.org/classes/ActiveModel/MassAssignmentSecurity/ClassMethods.html#method-i-attr_accessible
我希望这个编辑有帮助;)
答案 1 :(得分:1)
我不确定但是尝试删除attr_accessor
,可能你不需要它。