在这个 SO 答案中未定义的方法 `stringify_keys!' ruby on rails,OP 尝试创建一个带有“Honda”字符串的新汽车对象
@car = Car.new(params[:car])
并得到一个字符串化键错误。回答的人说他必须在创建对象时指定表中的列(在本例中为“名称”列),
create expects to get an attributes hash and to stringify it's keys for the column names.
If you have a column named name in your cars table then try this:
@car = Car.new(:name => params[:car])
但是,我正在观看 RailsCast,其中 Rbates 创建了一个条目表,其中包含“name”字符串和一个列“winner”作为布尔值。在他的控制器(他设置为使用 json 响应)中,他不使用属性哈希。他的创造动作
def create
respond_with Entry.create(params[:entry])
end
为什么 Rbates 不必使用属性散列,如果他可以,属性散列会是什么样子?像这样的东西?您是否必须命名每一列,在 ryans 的情况下:name 和 :winner?
def create
respond_with Entry.create(:name => params[:entry][:name], :winner => params[:entry] [:winner]
end