有没有办法将一个对象,特别是在视图中使用的form_builder对象,传递到控制器中的一个操作中?我正在使用link_to_remote,并希望更新控制器中的变量,然后通过render:update块向我的表单添加新的嵌套表单元素。
如果我将其作为参数传递,它会被转换为字符串,我也无法成功地将locals哈希传递到控制器中。
有没有办法将一个对象,特别是在视图中使用的form_builder对象,传递到控制器中的一个操作中?我正在使用link_to_remote,并希望更新控制器中的变量,然后通过render:update块向我的表单添加新的嵌套表单元素。
如果我将其作为参数传递,它会被转换为字符串,我也无法成功地将locals哈希传递到控制器中。
不可以将对象从视图传递到控制器。
所有的逻辑应该在控制器和模型中进行,在过程结束时,视图会在浏览器或其他地方呈现结果。
您只能使用params,无论您需要发送什么内容到控制器,都必须在params中进行序列化。我相信您不需要发送整个form_builder对象,只需发送构建新“子表单”所需的内容即可。
顺便说一下,您应该构建视图和控制器以在没有任何ajax的情况下工作,然后逐步增强您的表单和控制器以支持ajax。RJS和render:update是不好的实践,应该避免。找一个懂JavaScript的人来代替使用Rails的RJS编写伪代码。