【发布时间】:2009-09-25 13:47:57
【问题描述】:
我觉得有必要为提出如此简单的问题而道歉,但我对 Rails 指南越来越感到沮丧。我确信他们会回答我的问题,但他们没有提供足够的背景信息让我真正了解如何应用他们给我的东西。谷歌也没有多大帮助,尽管我可能只是在搜索错误的术语/短语。鉴于该免责声明,我将继续询问:
我有一个 Image 那个 HABTM Album。为了支持这一点,我有一个 albums_images 表,其中包含 image_id 和 album_id 字段(没有其他字段)。对于我的生活,我无法弄清楚如何填充我的图像表单部分,以便用户可以选择新上传的图像应该属于的相册。
我正在学习 Rails,所以我真的只想要基础知识。我确信有一百种方法可以做到这一点,但我想先学习基础知识并从那里构建。我的部分表单几乎是教科书:
<% form_for( @image, :html => { :multipart => true } ) do |f| %>
# All the basics you'd expect to see.
<% end %>
我最近的尝试并不比我尝试过的任何其他变体更好,但它看起来像这样:
<p>
<%= f.label :album_id %>
<%= f.select( :album_id, current_user.albums, :id, :name ) -%>
</p>
再次,我认识到我提出的问题很简单,并且我已经阅读了我能找到的内容,但我无法将它们组合成一个完整的解决方案。似乎有很多方法可以做到这一点,但没有真正讨论每一种方法、它们的优缺点或如何在更大的范围内真正使用它们。
谢谢。
更新:需要注意的几个键和代码更正。首先,图像和相册之间存在 HABTM 关系。两个模型表都没有直接引用另一个的 FK。其次,专辑收藏应以current_user.albums 访问(已在上面更正)。一个用户has_many 相册和一个相册belongs_to 用户。
更新:应下面IV的要求,目前使用以下代码:
22: <p>
23: <%= f.label :album_id %>
24: <%= f.select( :album_id, current_user.albums.collect {|a| [a.name, a.id]}) -%>
25: </p>
我收到此错误:
undefined method `album_id' for #<Image:0x1042ec110>
我在第 24 行得到错误。
【问题讨论】:
-
您能解释一下您遇到了什么样的错误吗?或者,发布您的开发日志的一些输出?
-
就是这样,错误已经结束,具体取决于我使用的变体。但是,“album_id”通常会出现某种合并错误或缺少方法错误。目前,使用以下代码: 22:
23: 24: 25:
我收到此错误:#<0x1042ec110>0x1042ec110>
标签: ruby-on-rails