Дайте его частному в качестве локальной переменной
<%= render :partial => 'middle', :locals => { :post => post } %>
Конечно, у rails также есть ярлык для рендеринга коллекций:
<%= render :partial => 'post', :collection => @posts %>
В этом случае он вызовет частичноеpost для каждого поста с локальной переменной 'post'
Вы можете даже создать шаблон проставки между каждым постом:
<%= render :partial => 'post', :collection => @posts, :spacer_template => 'post_divider' %>