gpt4 book ai didi

ruby-on-rails - Simple_form has_and_belongs_to_many 关联未更新

转载 作者:行者123 更新时间:2023-12-04 05:36:01 24 4
gpt4 key购买 nike

我有 field 和照片的模型:

class Venue < ActiveRecord::Base
has_and_belongs_to_many :photos

validates :name, presence: true
validates :permalink, presence: true, uniqueness: true

def to_param
permalink
end
end

class Photo < ActiveRecord::Base
mount_uploader :image, PhotoUploader

has_and_belongs_to_many :venues
end

我正在使用 simple_form 制作以下表格:
<div class="content-box">
<%= simple_form_for [:admin, @venue] do |f| %>
<%= f.input :name %>
<%= f.input :permalink %>
<%= f.input :description, input_html: { cols: 100, rows: 6 }%>
<%= f.input :address %>
<%= f.input :city %>
<%= f.input :phone %>
<%= f.association :photos %>
<%= f.button :submit, class: 'small radius' %>
<% end %>
</div>

这是我的 Edit 和 Update 方法的 Controller :
class Admin::VenuesController < ApplicationController

def edit
@venue = Venue.find_by_permalink!(params[:id])
@photos = @venue.photos.all
end

def update
@venue = Venue.find_by_permalink!(params[:id])
if @venue.update_attributes(venue_params)
redirect_to edit_admin_venue_path(@venue), notice: 'Venue was successfully updated.'
else
render action: "edit"
end
end

private

def venue_params
params.require(:venue).permit(:name, :permalink, :description, :address, :city, :phone, :photo_ids)
end
end

问题是,当我使用表单更新时, field 模型的所有属性都可以正常更新,但 photo_id 没有更新或存储。我猜这很简单,但我不确定它是什么。我正在使用 Rails 4,顺便说一句。

最佳答案

您需要许可 photo_ids作为 Array因为 photo_ids作为 Array 传递在表单提交时。目前,photo_ids没有得到更新,因为你没有允许他们作为 Array .

更新 venue_params如下:

def venue_params
params.require(:venue).permit(:name, :permalink, :description, :address, :city, :phone, :photo_ids => [])
end

通知: :photo_ids => []而不是 :photo_ids

关于ruby-on-rails - Simple_form has_and_belongs_to_many 关联未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23921886/

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