【发布时间】:2011-01-13 16:07:18
【问题描述】:
我有一个模型“MyObject”,其中包含一个名为“color”的属性,该属性值是从 COLORS=['red','black','yellow'] 列表中选择的。在我的应用程序中,我从数据库中获取了一个“MyObject”实例,并将其作为一行显示在页面上。我在 rails 3 中使用了“选择”表单助手,并允许用户从下拉菜单中选择颜色。
我是这样使用表单助手的:
select("myobject", COLORS, { :include_blank => false }),
在视图页面上,我成功将颜色作为下拉菜单,默认值为选中的颜色。
但是,当我从菜单中选择另一种颜色并按下保存按钮时,传递给我的控制器的“myobject”始终保持默认颜色值而不是选定的颜色值,为什么?? p>
我使用button_to("save", myobject_path(myobject), :method=>:put) 将对象传递给我的控制器。
在我的控制器中,更新方法:
class MyobjectsController < ApplicationController
...
def update
@myobject = myobject.find(params[:id])
if @myobject.update_attributes(params[:myobject])
puts @myobject.color #always get default value
redirect_to myobject_path
else
redirect_to myobject_path
end
end
...
end
谁能解释一下为什么我总是得到默认颜色值而不是选定的颜色值?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3