ruby-on-rails - 如何跟踪多次调用以呈现 :partial 的信息

标签 ruby-on-rails ruby partials

我正在使用 attribute_fu 为特定表格呈现一个漂亮的行 block 。

<%= f.render_associated_form(@foo.bars, :new => 5) %>

我想让 bar 部分有一些状态的概念。 (因为这个概念是特定于 View 的,我不想将它外化到 Bar 模型本身并在 Controller 中计算它。)为了简单起见,假设它是 的索引>bar@foo.bars 列表中。

(我知道如果是这种情况,我可以使用 :collection => @foo.bars 来启用 bar_counter ......这在我的测试中似乎不起作用,但我已经看过它的文档。)

我的问题——如何将变量传递到局部变量以便我可以保留和编辑状态?天真地,我假设做类似的事情

<% @tmp = {:index => 1} %>
%= f.render_associated_form(@foo.bars, :new => 5, :locals => {:tmp => @tmp}) %>

#goes in the view
<%= tmp[:index] += 1 %>

会起作用。 tmp 被适本地传递但是调用 [] 抛出“呃哦,你刚刚调用了一个方法 nil”。令我惊讶的是,我可以执行 tmp.inspect、tmp.class 等来查看哈希,这些结果是我期望的。但是 tmp[:index] 或 tmp[:anything_I_want] 会导致它爆炸。

tmp 设为数组也有类似的结果。

有什么想法吗?

最佳答案

我最终以彻底的 Rails 方式解决了这个问题——修补 :attribute_fu 以满足我的需要。希望我能尽快向社区发布我的补丁。

关于ruby-on-rails - 如何跟踪多次调用以呈现 :partial 的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/264832/

相关文章:

mysql - 在 Rails 中创建表和主键问题

javascript - 触发取消选中对复选框不起作用

ruby-on-rails - Rails-Tinytds崩溃的 ruby

ruby - 使用 Ruby & Github API 按日期过滤提交

ruby - hash 已经做成字符串的怎么转成hash?

Sass @import 使用前导下划线

ruby-on-rails - 自动旋转 unicorn 日志文件

ruby-on-rails - ruby on Rails 比较两个日期

html - 标题部分在 Rails 中无法正确呈现

templates - 查找运算符以包含 Handlebars 上的部分内容