'da Model Verileri ile Seçim Yapılıyor Böyle basit bir soru sorduğum için özür dilemem gerekiyor, ancak Rails Rehberleri ile gittikçe daha fazla sinirleniyorum. Eminim soruma cevap verdiler, fakat bana 'un bana ne verdiklerini nasıl uyguladıklarını anlamak için yeterli bağlam sağlamazlar. Google da çok fazla yardım etmese de sadece yanlış terimleri/ifadeleri araştırıyorum. Feragatname verildiğinde, sadece devam edip şu soruyu soracağım:Rails
HABTM Album
'un Image
var. Bunu desteklemek için, image_id
ve album_id
alanları (başkaları yok) olan bir albums_images
tablom var. Benim yaşamım için, resim formumu kısmi olarak nasıl dolduracağımı anlayamıyorum, böylece kullanıcı yeni yüklenen bir resmin ait olması gereken albümleri seçebilir.
Rails öğreniyorum, bu yüzden sadece temelleri istiyorum. Eminim yüzlerce yol yapmak için süslü eklentiler var, ama öncelikle temelleri öğrenmek ve oradan inşa etmek istiyorum. Kısmi Benim formu hemen hemen ders kitabı geçerli:
<% form_for(@image, :html => { :multipart => true }) do |f| %>
# All the basics you'd expect to see.
<% end %>
Benim en son deneme ben denedim diğer varyasyonların daha iyi çalışmaz, ancak şuna benzer: Yine
<p>
<%= f.label :album_id %>
<%= f.select(:album_id, current_user.albums, :id, :name) -%>
</p>
Ben Sorduğum sorunun sadeliğini anladım ve bulabildiğim şeyi okudum, ancak bunu tam bir çözüm haline getiremedim. Bunu yapmanın pek çok yolu var gibi görünüyor, ama her biri, artıları/eksileri veya bunları daha geniş bir bağlamda gerçekten nasıl kullanacakları hakkında gerçek bir tartışma yok.
Teşekkürler.
GÜNCELLEME: Birkaç not ve kod düzeltmesi gereken anahtarlar. İlk olarak, görüntüler ve albümler arasında bir HABTM ilişkisi var. Her iki model tablosu da diğerine doğrudan referans veren bir FK'ye sahip değildir. İkincisi, albüm koleksiyonu current_user.albums
(yukarıda düzeltilmiştir) olarak erişilmelidir. Bir kullanıcı has_many
albüm ve bir albüm belongs_to
kullanıcısı.
GÜNCELLEME: Şu anda aşağıda IV'si isteği üzerine, bu kodla: Ben çizgi 24'de hata alıyorum
undefined method `album_id' for #<Image:0x1042ec110>
:
22: <p>
23: <%= f.label :album_id %>
24: <%= f.select(:album_id, current_user.albums.collect {|a| [a.name, a.id]}) -%>
25: </p>
bu hatayı alıyorum.
Ne tür bir hata olduğunu açıklar mısınız? Veya, geliştirme günlüğünüzün bazı çıktılarını gönderin mi? – theIV
İşte bu, kullandığım varyasyona bağlı olarak hataların hepsi bitti. Ancak, genellikle "album_id" için bir çeşit birleştirme hatası veya eksik bir yöntem hatası oluştu. 22: \t
23: Bu kod ile anda, \t \t <% = f.label: Album_ID%> 24: \t \t <% = f.select (: Album_ID, current_user.albums.collect { | a | [a.name, a.id]}) -%> 25: \t
bu hatayı alıyorum: Ben yardımcı olur umarım 0x1042ec110> : tanımsız yöntem '# için 'Üzgünüz, yorumların kod bloklarına izin vereceğini varsaydım. Orijinal yayına bir güncelleme ekleyeceğim. –