2012-05-31 53 views
2

我试图将工具提示添加到只读输入,该输入可能不总是足够宽以显示完整内容。当用户将鼠标悬停在输入上时,工具提示将用于显示完整内容。从Rails Formbuilder中访问资源属性

问题是我似乎无法访问表单构建器参数部分中的资源属性。我试图使输入的值成为标题。请看下面的代码:

= f.fields_for :invoice_items, @invoice.invoice_items do |item| 
    %tr 
     %td 
     = item.text_field :code, :title => item.name, :rel=>'tooltip', :class => 'uneditable-input span1', :readonly=>'true 

举:

undefined method `name' for #<ActionView::Helpers::FormBuilder:0x007fea1e86f8e8> 

现在与我们可以看到该项目是不实际的资源,但表单生成器类。我如何从这里访问原始资源?

回答

5

我认为这会做你想要什么:

= f.fields_for :invoice_items, @invoice.invoice_items do |item| 
    %tr 
     %td 
     = item.text_field :code, :title => item.object.name, :rel=>'tooltip', :class => 'uneditable-input span1', :readonly=>'true 

您可能需要取出第二个参数,该

@invoice.invoice_items 
+0

真棒感谢,item.object.name的伎俩。如果我可能会问,你怎么知道这一点?不过,需要@ invoice.invoice_items,因为它与发票的关系属于belongs_to/has_many关系。 –

+0

真棒,很高兴听到它的工作。关于我的知识,我在[rails api site](http://api.rubyonrails.org/)上的fields_for的一对多关系文档中注意到了它的一个示例(http://api.rubyonrails.org/) <%= form_for @人做| person_form | %> ... <%= person_form.fields_for:projects do | project_fields | %> <%if project_fields.object.active? %> 名称:<%= project_fields.text_field:名称%> <% end %> <% end %> ... <% end %> – Adam

+0

啊哈好大。再次感谢! :) –