Rails未定义局部变量或方法:使用连接表渲染部分

时间:2017-11-01 08:03:08

标签: ruby-on-rails jointable renderpartial

我在公司和其他模特之间有一个联合表,比如​​工作,地点,人员

_companies.html.erb

    <% if company.companylogo %>
    <%= link_to (image_tag(company.companylogo.url(:medium), :class => "fw img-responsive", :alt =>"company logo")), company_path(company) %>
    <% else %> 
    <%= link_to (image_tag("http://via.placeholder.com/405x285", :class => "fw img-responsive", :alt =>"company logo")), company_path(company) %>
    <% end %>



   <p <%= link_to truncate(company.name, :length => 20), company_path(company), :class => "" %> </p>
在job / index.html.erb中的

我可以通过

呈现上述公司的所有内容
<%= render job.companies if job.companies.present? %>

显示母公司徽标和公司名称。

现在我想通过创建另一个部分来将公司名称与徽标分开: _seperatename.html.erb

**<p <%= link_to truncate(company.name, :length => 20), company_path(company), :class => "" %> </p>**

我的问题是,在job / index.html.erb中,如何呈现_seperatename.html.erb?

我试过&lt;%= render'公司/ seperatename'%&gt;

它抛出错误 ActionView :: Template ::错误在/ jobs 未定义的局部变量或方法`company'for#&lt;#:0x007f99b6b239f8&gt;

但是,如果我用正常文本替换_seperatename.html.erb中的ruby内容,它会呈现没有错误

1 个答案:

答案 0 :(得分:1)

您应该将变量传递给部分:

<%= render partial: 'companies/seperatename', locals: {company: @company} %>

文档:http://guides.rubyonrails.org/layouts_and_rendering.html#using-partials