在我的/app/views/institution_form.html.erb中,我有
<%= f.textfield :auto_complete_list %>
从/app/models/institution.rb 获取数据
def auto_complete_list
return self.county.city.name + ' '+ self.county.name
end
但我不想在按下按钮时提交。我目前的解决方案是将其从params[:institution]中删除是否有更干净的方法从提交参数中删除只读属性?
虽然我同意daekrist的答案,但您可以通过使用以下较低级别的表单助手方法轻松地将其排除在params[:institution]
之外:
<%= form_for @institution do |f| %>
...
<%= text_field_tag 'auto_complete_list', @institution.auto_complete_list %>
...
<% end %>
所以现在提交表单时,它将在params[:auto_complete_list]
而不是params[:institution][:auto_complete_list]
中。
我想,更干净的方法是永远不要在表单中放这样的东西:)
如果你想要自动完成,最好使用一些js/jquery插件,并将其附加到你需要的字段。
也许你想尝试令牌字段,这里已经解释好了http://railscasts.com/episodes/258-token-fields