Как делает has_one: посредством работы?

Kotlin

import android.graphics.BitmapFactory
import android.os.Bundle
import android.support.v4.graphics.drawable.RoundedBitmapDrawableFactory
import kotlinx.android.synthetic.main.activity_main.*

val bitmap = BitmapFactory.decodeResource(resources, R.drawable.myImage)
val rounded = RoundedBitmapDrawableFactory.create(resources, bitmap)
rounded.cornerRadius = 20f
profileImageView.setImageDrawable(rounded)

Чтобы сделать ImageView Circular, мы можем изменить cornerRadius с помощью:

rounded.isCircular = true
5
задан James A. Rosen 24 September 2008 в 19:07
поделиться

3 ответа

Кажется что Ваше использование has_one: через корректно. Проблема, которую Вы видите, имеет отношение к сохранению объектов. Чтобы ассоциация работала, объект, на который ссылаются потребности иметь идентификатор для заполнения model_id поле для объекта. В этом случае, PackReleaseItems имейте a pack_id и a release_item_id поле, которое должно быть заполнено, чтобы ассоциация работала правильно. Попытайтесь сохранить прежде, чем получить доступ к объектам через ассоциацию.

6
ответ дан 14 December 2019 в 01:21
поделиться

Вы хотите сохранить или создать (вместо нового) объект и пакет. Иначе база данных не присвоила идентификатор для ассоциации.

1
ответ дан 14 December 2019 в 01:21
поделиться

Ваша проблема находится в том, как Вы связываетесь ReleaseItem и Pack.

has_many :through и has_one :through обе работы через объект, который также действует как объединяющая таблица в этом случае PackReleaseItem. Так как это не просто объединяющая таблица (если бы это было, то необходимо просто использовать has_many без :through), правильно создание ассоциации требует создания объекта соединения, как так:

>> item.pack_release_items.create :pack => pack

Что Вы делаете с Вашим item.pack = pack вызов просто связывает объекты в памяти. Когда Вы идете для поиска его снова, это смотрит"through" pack_release_items, который пуст.

2
ответ дан 14 December 2019 в 01:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: