我有以下
@account = Account.find(4)
respond_to do |format|
format.html { render :action => "edit" }
end
呈现表单
<%= form_for(@account,:html => {:id => "account" }) do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.label :amount %>
<%= f.text_field :amount %>
<% end %>
将更新发送到
@account = Account.find(params[:id])
@account.update_attributes(Account.params(params))
respond_to do |format|
format.html { render :action => "edit" }
end
我在帐户模型中有功能
def self.params(params)
params.require(:account).permit!
end
帐户无法更新时。 我看到错误,但表单不会保留我尝试更新帐户的数据? 我尝试使用
<%= form_for(@account,:html => {:id => "account" }) do |f| %>
<%= f.label :name %>
<%= f.text_field :name, :value => params[:user][:name] %>
<%= f.label :amount %>
<%= f.text_field :amount, :value => params[:user][:amount] %>
<% end %>
但是当我加载编辑页面时,那些失败。
谢谢
答案 0 :(得分:0)
正在发生的问题有一个原因。代码继承自具有以下内容的类:
slef.reload
在验证过程中调用的函数之一。
所以每当我们尝试更新更新失败时,因为一旦验证被点击,它就会从数据库重新加载原始值并忽略新值,如果旧值为空则只是一个令人头疼的问题。 所以到了显示时,旧的价值观已经消失了。 谢谢大家的帮助