Rails 2.3.5 collection_select:如何从所选对象获取属性并发送到javascript函数

Rails 2.3.5 collection_select:如何从所选对象获取属性并发送到javascript函数,javascript,ruby-on-rails,Javascript,Ruby On Rails,我选择了一个集合,代码如下: <%= collection_select(:address, :id, current_user.addresses, :id, :address1, options ={:prompt => "Select an address"}, html_options={:onchange => "insert_address_fields()"}) %> “选择地址”}, html_options={:onchang

我选择了一个集合,代码如下:

    <%= collection_select(:address, :id, current_user.addresses, :id, :address1, options ={:prompt => "Select an address"}, 
        html_options={:onchange => "insert_address_fields()"}) %>
“选择地址”},
html_options={:onchange=>“插入_地址_字段()”})%>

在列表中选择地址时,可以正确调用insert_address_fields,但我要做的是将所选地址的所有属性(名字、姓氏、地址、城市、州等)发送到insert_address_fields函数。类似于
insert\u address\u fields()
,或者,如果必须,单独列出属性。使用我现在的设置是否可以不使事情变得过于复杂?

collection\u select生成一个
,其中包含一组
,这些
是从您正在设置的表的列中提取的

通过执行“插入地址字段(this.value)”,您只能(并且应该)将所选地址发送到插入地址字段()。在本例中,这将是html的输入字段

该函数应负责通过访问数据库从地址获取相关信息

为什么

  • 否则,您将对视图承担太多的责任。视图不应解析信息并将其发送给函数(反之亦然!)

  • 如果向地址属性添加列,则需要更改视图。添加列对应用程序的视图应该是透明的


  • 最后,我使用了
    insert\u address\u字段(this.value)
    ,并在javascript中使用ERB标记保存所有地址。当用户更改集合_select中的地址时,它会调用js函数并按ID查找地址,然后显示地址。