Rubybenutzer,
Ja, das ist völlig normales Verhalten. In Ihrem Controller, wann immer Sie eine Variable mit @meinevariable angeben, handelt es sich um eine Instanzvariable, die im Bereich des Controllers und der Ansicht verfügbar ist. Eine Variable ohne das @ ist eine lokale Variable, die nur innerhalb dieser Methode verfügbar ist.
Also, wenn Sie in Ihrem Controller Folgendes tun:
Klasse Foos < ApplicationController
def index
@foos = Foo.all
@bars = Bar.all
end
end
Können Sie dann auf @foos und @bars in Ihrer Ansicht verweisen.
Meine Foos und Bars
<% @foos.each do |f| %>
<% end %>
foo
f.name
<% @bars.each do |b| %>
<% end %>
bar
b.name
Jetzt, um die Dinge sauberer zu halten, möchten Sie vielleicht überlegen, ein Partial zu verwenden. Erstellen Sie eine Datei namens _bars_index.html.erb und kopieren Sie den Tabellencode mit den Bars darin.
Ersetzen Sie es mit
<%= render "bars_index" %>
und jetzt ist Ihr Code schön und ordentlich und leicht nachvollziehbar.