gpt4 book ai didi

ruby-on-rails - 在 Rails 中使用模型数据填充选择

转载 作者:行者123 更新时间:2023-12-04 00:29:43 29 4
gpt4 key购买 nike

我觉得有必要为问这样一个简单的问题而道歉,但我对 Rails 指南越来越感到沮丧。我确信他们回答了我的问题,但他们没有提供足够的背景信息让我真正理解如何应用他们给我的东西。谷歌也没有太大帮助,尽管我可能只是在搜索错误的术语/短语。鉴于该免责声明,我将继续问:

我有一个 Image HABTM Album .为了支持这一点,我有一个 albums_images表带 image_idalbum_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 行收到错误消息。

最佳答案

我认为select元素是 Rails 中比较令人困惑的方面之一,因为正如您所说,似乎有多种方法可以做到这一点。

试试这个:

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

关于ruby-on-rails - 在 Rails 中使用模型数据填充选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1477384/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com