Ich habe folgende zwei ModelleSo führen Sie SQL-Joins in Schienen
class MyTable < ApplicationRecord
has_many :my_table_joins, dependent: :destroy
validates :name, uniqueness: true
end
class MyTableJoin < ApplicationRecord
belongs_to :some_column, polymorphic: true
belongs_to :my_table
end
Ich habe folgenden Code in Controller
def index
@my_table_data = MyTable.all
render(json: @my_table_data) && return unless @my_table_data.empty?
render_error(:not_found, 'something...')
end
Der Rückgabe folgende Daten:
[
{
"id": 1,
"name": "SOME_NAME1",
"created_at": "2017-09-28T18:51:51.000Z",
"updated_at": "2017-09-28T18:51:51.000Z"
},
{
"id": 2,
"name": "SOME_NAME2",
"created_at": "2017-09-28T18:51:51.000Z",
"updated_at": "2017-09-28T18:51:51.000Z"
},
]
Ich möchte Verknüpfen Sie die Tabelle MyTableJoin mit MyTable und stellen Sie die Daten wie folgt her:
[
{
"id": 1,
"name": "SOME_NAME1",
"created_at": "2017-09-28T18:51:51.000Z",
"updated_at": "2017-09-28T18:51:51.000Z"
"access_group_joins": [
{
"some_column": 1
"some_column_type": "some data"
"created_at": "2017-01-01 12:00:00",
"updated_at": "2017-01-01 12:00:00"
},
... ...
]
}
{
"id": 2
... ...
}]
Grundsätzlich möchte ich beide Tabellen verbinden und alle Daten aus MyTable und bestimmte Spalten von MyTableJoin zurückgeben. Wie kann ich das erreichen?
habe ich versucht, Rahmen zu schaffen, wie
scope :with_joins_data, joins(:my_table_joins)
folgt aber versuchen, herauszufinden, wie ich die Spalten nur wählen kann ich aus my_columns_table benötigen
Warum nicht nur eine JSON-Vorlage einrichten, die die Struktur, die Sie benötigen, z. http://railscasts.com/episodes/322-rabl – jamesc
Yeah .. oder jbuilder .. es sei denn, Sie möchten die SQL-Abfrage mit Select-Anweisung schreiben. – Anton
Danke, ich werde Ansichten erstellen. Können Sie mir sagen, wie ich den Verbindungsteil durchführe? –