Ruby on rails 用Rails中的模型数据填充Select

Ruby on rails 用Rails中的模型数据填充Select,ruby-on-rails,Ruby On Rails,我觉得有必要为提出如此简单的问题道歉,但我对Rails指南越来越失望。我肯定他们回答了我的问题,但他们没有提供足够的背景让我真正理解如何应用他们给我的东西。谷歌也帮不上什么忙,尽管我可能只是在搜索错误的术语/短语。鉴于上述免责声明,我只想继续问: 我有一张HABTM相册上的图片。为了支持这一点,我有一个albums_images表,其中包含image_id和album_id字段,没有其他字段。就我的一生而言,我不知道如何填充我的图像表单部分,以便用户可以选择一个新上传的图像应该属于的相册 我正在

我觉得有必要为提出如此简单的问题道歉,但我对Rails指南越来越失望。我肯定他们回答了我的问题,但他们没有提供足够的背景让我真正理解如何应用他们给我的东西。谷歌也帮不上什么忙,尽管我可能只是在搜索错误的术语/短语。鉴于上述免责声明,我只想继续问:

我有一张HABTM相册上的图片。为了支持这一点,我有一个albums_images表,其中包含image_id和album_id字段,没有其他字段。就我的一生而言,我不知道如何填充我的图像表单部分,以便用户可以选择一个新上传的图像应该属于的相册

我正在学习Rails,所以我真的只想要基本的东西。我确信有很多新奇的插件可以用上百种方法来实现这一点,但我想先学习基础知识并从中构建。我的部分表格几乎是教科书:

<% form_for( @image, :html => { :multipart => true } ) do |f| %>
  # All the basics you'd expect to see.
<% end %>
我得到这个错误:

undefined method `album_id' for #<Image:0x1042ec110>
我在第24行得到了错误

我认为select元素是Rails中比较混乱的方面之一,因为正如您所说,似乎有很多方法可以做到这一点

试试这个:

<%= f.select(:album_id, @image.albums.all.collect {|a| [a.name, a.id]}) -%>

嗯,我不确定这是最好的方式,Rails方式,或者说,坦白地说,甚至是优雅的方式,但这是我使用的代码,到目前为止,它似乎是有效的

<%= f.label 'Albums' -%>
<%= collection_select( :image, :album_ids, current_user.albums, :id, :name, {}, { :multiple => true } ) -%>

在这一点上,当我说“工作”时,我能真正证明的是页面呈现没有错误,并且在编辑图像时选择了适当的相册。我仍然震惊于从许多不同的来源拼凑出一个完整的解决方案是多么困难。

我已经纠正/强调了关于我的结构的几点,但这对我来说不起作用。可能是因为我必须做b/c的改变,我有一些不好的信息上面。我现在拥有的是。我还尝试了.all named_scope。您能解释一下您遇到了什么样的错误吗?或者,发布一些开发日志的输出?就是这样,根据我使用的变量,错误到处都是。不过,album_id经常出现某种合并错误或缺少方法错误。目前,使用以下代码:22:23:24:25:

我得到了以下错误:未定义的方法'album_id',我希望这会有所帮助。这比我预期的要令人沮丧得多。对不起,我假设注释会允许代码块。我将在原来的帖子中添加一个更新。我认为你问这个问题是完全有道理的,Rails API非常混乱!我对导轨越来越失望。我肯定他们回答了我的问题,但他们没有提供足够的上下文让我真正理解如何应用他们给我的Nod Nod x无穷大
<%= f.select(:album_id, @image.albums.all.collect {|a| [a.name, a.id]}) -%>
<%= f.label 'Albums' -%>
<%= collection_select( :image, :album_ids, current_user.albums, :id, :name, {}, { :multiple => true } ) -%>