在助手方法中呈现rails部分



我是一个rails初学者,我在理解渲染方法是如何工作的时候有点麻烦。我跟随这个railcast,它与rails的祖先插件有关。我理解有困难的部分是RyanB提供的nested_forms帮助器方法。

def nested_messages(messages)
  messages.map do |message, sub_messages|
  render(message) + content_tag(:div, nested_messages(sub_messages), :class =>     
  "nested_messages")
  end.join.html_safe
end

当调用render(message)时,rails渲染_message.html。erb部分。我如何强制它渲染不同的局部?

我试过这样做:

def form_nodes(nodes)
 nodes.map do |node, sub_nodes|
   render(:partial => 'mypartial', :locals => node) + content_tag(:div, form_nodes(sub_nodes), :class => "nested_nodes")
 end.join.html_safe
end

但是这会导致错误:

undefined method `keys' for

我正在使用祖先创建一个调查表格。它允许用户创建一个调查,然后接受它。我想让rails呈现两种不同类型的视图。一个用于创建调查,一个用于接受调查。因此,我想创建一个单独的部分来显示我的祖先节点,但我不确定如何强制render(message)方法呈现不同的部分。

如有任何帮助,不胜感激。

谢谢

以防有人遇到这个问题。这就是我最后要做的事情。我不知道这是否是最好的解决方案,但它对我有效。如果我做了一些愚蠢的事情,请随时纠正我的代码。

def form_nodes(nodes, answers)
     nodes.map do |node, sub_nodes|
       render(:partial => 'folder/mypartial', :locals => { :node => node, :answers => answers, :f => builder}) + content_tag(:div, form_nodes(sub_nodes,answers), :class => "nested_nodes")
     end.join.html_safe
 end

相关内容

  • 没有找到相关文章

最新更新