gpt4 book ai didi

ruby-on-rails - Rails 3 - 创建新的 HABTM 关联时连接表未更新

转载 作者:行者123 更新时间:2023-12-04 05:56:13 25 4
gpt4 key购买 nike

过去三天我一直在研究这个问题,但在任何地方都找不到任何答案。我正在尝试学习 Rails,我从一个看起来非常简单的应用程序开始。

我有两个模型:

class Album < ActiveRecord::Base

has_and_belongs_to_many :users

attr_accessible :title

end

class User < ActiveRecord::Base

has_and_belongs_to_many :albums

attr_accessible :first_name, :last_name

end

我还创建了连接表

create_table "albums_users", :id => false
t.integer "album_id"
t.integer "user_id"

我的 users/show.html.erb 文件包含一个表单

<%= form_for([@user, @user.albums.build]) do |f| %>

发送此表单时,它会调用我的相册#create controller

  def create
@user = User.find(params[:user_id])
@album = @user.albums.cre(params[:album])
@album.save
end

这会创建一个新相册,但不会在连接表中创建条目。

在查看提交表单时发送的参数哈希时,我有

Parameters: {"utf8"=>"✓", "commit"=>"Create Album", "user_id"=>"1", "authenticity_token"=>"XNCPLYWQRzjpuQfjqbR7XuhMjr5iRzjLiqXpqZ4spFo=", "album"=>{"event"=>"title"=>"My Title"}}

并且 SQL 请求不使用参数哈希中的 user_id 值

SQL (3.4ms) INSERT INTO "albums" ("title", "user_id") VALUES (?, ?) [["title", "My Title"],["user_id", nil]]

我尝试使用 user_id 将 hidden_​​field 添加到我的表单中,但随后出现此错误

Can't mass-assign protected attributes: user_id

有人能解释一下我的模型和关联有什么问题吗?谢谢!

最佳答案

  1. 对 has_many 关联使用复数
  2. 直接在用户的相册中构建相册

    @album = @user.album.create(params[:album])

关于ruby-on-rails - Rails 3 - 创建新的 HABTM 关联时连接表未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12703471/

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