我有一个部分模板,其中包含一个按钮链接,其CSS样式可以通过passing local variables自定义到模板:
# _button_create.html.erb
text_size ||= 'small'
link_to('Create', create_route_path, :method => :post, :class => text_size, ...)
# rendering button-link with defaults (small version)
render(:partial => 'button_create')
# rendering large version
render(:partial => 'button_create', :locals => {:text_size => 'large'})
单击后,按钮链接将向服务器执行AJAX请求,成功后,将其替换为另一个按钮链接:
# _button_destroy.html.erb
text_size ||= 'small'
link_to('Destroy', destroy_route_path, :method => :delete, :class => text_size, ...)
当我最初使用默认值渲染部分图像时,所有方法都有效。也就是说,成功的AJAX请求将“创建/销毁small
”按钮链接替换为“销毁/创建small
”按钮链接。
但是,考虑到我最初在单击按钮链接时呈现的是部分模板的“大”版本,然后在AJAX成功时,按钮链接被其“小”版本代替了(因为模板没有知道text_size
为large
,默认值为small
)。
关于AJAX成功,我想返回text_size
最初呈现large
时按钮链接的“大”版本,以及最初呈现{时的“小”版本{ {1}}。
我知道我可以使用AJAX发送“局部变量”数据(作为参数),以使部分模板(尽管通过控制器)知道small
是text_size
(例如,通过在{中传递值{1}}),但我正在寻找一种更好的解决方案来处理所有问题。
我的疑问是:
large
”等“局部变量”数据作为参数发送给服务器,例如以及模型数据?