Rails Frage ...Rails ActiveRecord gibt keine Werte zurück
Ich versuche, Daten aus einigen Tabellen, die in meiner Datenbank in einer Ansicht zusammengefügt sind, auszudrucken. Insbesondere möchte ich jede Eigenschaft Adresse auszudrucken („Adresse“ von Property-Modell) und es ist entsprechend Kommentar („comment_text“ von Interesse Model)
Fragen:
1) Im Moment bin Beitritt ich die Tabellen in die Aussicht; Ich nehme jedoch an, dass dies nicht korrekt ist, aber ich bin mir unsicher, wie ich sie in den Controller einbinden kann. Sollte ich mich überhaupt den Tischen in der Ansicht anschließen? Oder sollte das im Controller passieren?
2) In meiner Ansicht möchte ich die Adresse und den entsprechenden Kommentartext ausdrucken; wenn ich jedoch versuche, jetzt auszudrucken, sieht es wie ein aktives Aufzeichnungsbeziehungsobjekt aus, d. h. zeigt "[" test "]" und ich möchte "test" anzeigen
Irgendwelche Ideen? Code unten:
Schema:
create_table "interests", force: :cascade do |t|
t.integer "user_id"
t.integer "property_id"
t.string "interested", default: "unknown"
t.string "comment_text"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
add_index "interests", ["property_id"], name: "index_interests_on_property_id"
add_index "interests", ["user_id"], name: "index_interests_on_user_id"
create_table "properties", force: :cascade do |t|
t.string "address"
t.string "city"
t.string "state"
t.integer "zip"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
Modelle:
class Property < ActiveRecord::Base
has_many :interests
has_many :users, through: :interests
default_scope {order("id ASC")}
end
class Interest < ActiveRecord::Base
belongs_to :property
belongs_to :user
validates :user_id, :presence => true
validates :property_id, :presence => true
end
Controller:
def index
@properties = Property.all
end
Ausblick:
<% @properties.each do |p| %>
<td><%= p.interests.collect(&:comment_text) %>
<% end %>
Dank slowjack! Nicht sicher, wie ich das vermisst habe, aber das hat funktioniert! – Anthony