我对 Rails 很陌生,我正面临一个问题。我有
楷模
Model1
id: integer
account_id: integer
Account
id: integer
我在 Model1 中进行了如下验证,
型号代码:
validates :account_id, :inclusion => { :in => Account.find(:all).collect(&:id)}
我使用查看代码的下拉列表:
<%= f.select :account_id, @accounts.collect {|acc| [acc.name, acc.id]}, {:prompt => 'Select Account' }, { :selected => @defaultaccount, :class => 'selectwidth' } %>
我在提交表单之前使用客户端验证来验证字段。我正在使用 Heroku 来部署我的应用程序。
我先创建一个帐户,然后从表单中尝试创建一个新模型1。下拉列表中填充了我拥有的所有帐户。然后我从下拉列表中选择一个我创建的帐户,客户端验证生效并显示“无效”,这是 validates_inclusion_of 的错误消息,就好像该帐户不存在一样。不确定发生了什么,我检查了数据库并创建了帐户,这就是下拉列表首先加载帐户的原因。
我将 validates_inclusion_of 更改为 rails 3 validates :account_id, :inclusion => { :in => {} } 语法并重新部署。现在我尝试在新的 model1 表单中选择该帐户,下拉菜单不会显示先前创建的帐户的错误。
然后我创建了一个新帐户并尝试为新帐户创建一个新模型1,验证失败再次出现。
所以它就像一个缓存问题?这是客户端验证问题吗?我尽我所能尝试找出问题所在,但我对正在发生的事情一无所知。
所以每次我创建一个帐户时,它都希望我重新部署它会杀死应用程序的功能。我该如何摆脱这个问题?不太确定发生了什么。
在 Heroku 中部署的 Config、Rails 3 使用资产管道
Gems:客户端验证 Kaminari