我正在尝试向现有模型添加新列,但是当我尝试更新这些值时,没有任何内容写入数据库。
我在视图中有以下输入
<% if is_auth%>
<%= f.input :is_startup, as: :radio_buttons, label: 'Startup' %>
<%= f.input :is_hq, as: :radio_buttons, label: 'Is the Office Headquarters' %>
<% end %>
我已经通过迁移将is_hq字段添加到数据库中。问题是我无法从视图中更新该字段。 is_startup参数更新但新的is_hq参数不会更新。如果我在pgadmin中运行sql来设置一个值,它会正确读取它但我无法改变它。
在我的控制器中,我有以下更新代码
def update
@company = Company.find(params[:id])
if @company.update_attributes(company_params)
flash[:success] = "Data updated"
redirect_back(fallback_location: edit_page)
else
flash[:error] = @company.errors.full_messages
render 'edit'
end
end
没有设置所需的参数,在模型中我没有验证。
我无法理解为什么我添加的任何新字段都没有更新。在日志中,我可以看到正确传递的参数,但是commit doenst会更新新的新字段。
答案 0 :(得分:0)
我正在尝试向现有模型添加新列,但是当我尝试时 更新
您可能只需要运行迁移:rake db:migrate
。仅仅添加新列还不够。你必须运行迁移。
另外,检查您的数据库是否包含这些列。运行rails dbconsole
(或使用其他方式登录数据库)。然后use your_db_name;
和desc your_table;
。
列应该存在。