2015-08-24 1 views
0

Я визуализирую кучу таблиц с графиком, все тот же тип данных повторяется несколько раз, поэтому я хотел использовать частичный код для DRY-кода.Rails 4 неполных местных жителей undefined varibale error

Это код, который я называю в представлении:

<%= render 'app_usage', locals: { 
    metric: "Sessions", 
    new_total: @flurry_total, 
    old_total: @flurry_old_total, 
    growth: flurry_growth, 
    chart_data: flurry_chart 
    } %> 

и _app_usage.html.erb

<div class="col-sm-12"> 
    <table class="table table-striped table-condensed"> 
    <tbody> 
     <tr><td>Metric:</td><td><%= metric %></td></tr> 
... 

Однако я получаю сообщение об ошибке для <tr><td>Metric:</td><td><%= metric %></td></tr> говоря переменная metric не определена. Почему это?

ответ

2

Вы должны использовать синтаксис partial для вызова the ActionView::PartialRenderer with locals:

<%= render partial: 'app_usage', locals: { 
    metric: "Sessions", 
    new_total: @flurry_total, 
    old_total: @flurry_old_total, 
    growth: flurry_growth, 
    chart_data: flurry_chart 
    } %> 
+0

Он он да ... я это пропустил. –

+0

Но без частичного синтаксиса, каким образом Rails достигает частичного, я схожу с ума, если я следую OP ... –

+0

@ArupRakshit Вы можете вызвать частичное, если вы не хотите передавать свои собственные «макеты» или «locals», используя обычный синтаксис 'render'. См. «Отображение случая по умолчанию» из ссылки в моем ответе :) – sjagr