私は本当にレールの複数のテーブルからquerysを扱うことに固執しています。レールで照会されたレコードから特定のデータ単位を表示するにはどうすればよいですか?
def show
@user = User.find(params[:id])
@entry = Entry.joins(:event, :user).where(users: { id: '2' })
@event = Event.find(1)
end
、これは私のモデル
class Entry < ApplicationRecord
belongs_to :user
belongs_to :event
class User < ApplicationRecord
has_many :entries, dependent: :destroy
class Event < ApplicationRecord
has_many :entries, dependent: :destroy
クエリは、レールコンソールに喜んで実行され、レコードを返しますが、私はentry.course
のような特定のユニットにアクセスする方法がわからないです。これは私のコントローラである場合私の埋め込まれたルビー。私はページにログインしているユーザでassosiatedすべてのエントリの出力気にいらに似woulkページでを明確にするために
更新
。
eventNameのeventLocation EVENTDATEもちろんsiCard
スキーマ:
ActiveRecord::Schema.define(version: 20171204183458) do
# These are extensions that must be enabled in order to support this
database
enable_extension "plpgsql"
create_table "entries", force: :cascade do |t|
t.string "course"
t.string "siCard"
t.bigint "user_id"
t.bigint "event_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["event_id"], name: "index_entries_on_event_id"
t.index ["user_id", "created_at"], name:
"index_entries_on_user_id_and_created_at"
t.index ["user_id"], name: "index_entries_on_user_id"
end
create_table "events", force: :cascade do |t|
t.string "eventName"
t.string "location"
t.date "eventDate"
t.text "description"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "eventLink"
t.string "eventCoordinates"
t.index ["eventName"], name: "index_events_on_eventName", unique: true
end
create_table "users", force: :cascade do |t|
t.string "name"
t.string "email"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "password_digest"
t.string "firstName"
t.string "remember_digest"
t.boolean "admin"
t.index ["email"], name: "index_users_on_email", unique: true
end
add_foreign_key "entries", "events"
add_foreign_key "entries", "users"
end
'@ entry'という名前のものは、実際は1つのEntryオブジェクトではありません。エントリの集まりです。それに応じてコードを変更します。 –
人々はあなたが達成しようとしていることについて多くのことを推測しているようです。結果に表示する内容を明確にしてください。 1人のユーザー、1つのイベント、1つ以上のエントリ?モデルとアソシエーションに ':course'を追加してください。 '@entry 'で推測できるのですが。もちろん、それはあなたのコードがより組織化されるように '@ course'をコントローラに追加するほうが良いでしょう。 – neongrau
私は何を求めているのかを明確にしようとしました。 –