所以我有一个嵌套资源
resources :albums do
resources :elements
end
我可以更新、删除和查看这些元素。我不能真正做的是创建一个新元素。所以它实际上是在数据库中创建的,而不是在映射表中。楷模:
班级专辑:
has_many :elements, :through => :albums_elements
has_many :albums_elements
类元素:
has_many :albums_elements
has_one :album, :through => :albums_elements
类专辑元素:
belongs_to :album
belongs_to :element
在元素控制器中,我有:
def create
@element = Element.new(params[:element])
@album = Album.find(params[:album_id])
respond_to do |format|
if @element.save
format.html { redirect_to album_elements_path(@album), :notice => 'Element was successfully created.' }
format.json { render :json => @element, :status => :created, :location => @element }
else
format.html { render :action => "new" }
format.json { render :json => @element.errors, :status => :unprocessable_entity }
end
end
end
正如我所说,当我按下表单中的创建按钮时,该元素正在表“元素”中正确创建,但未插入到“albums_elements”中。我在这里看到了一个类似的帖子,作者被告知要修复他的依赖项。但是我没有看到地雷有错误?我如何告诉 rails 插入两个表?元素和专辑元素?