加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 使用Active Admin创建Rails 3 HABTM会抛出’无

发布时间:2020-12-17 03:30:30 所属栏目:百科 来源:网络整理
导读:我是一个铁杆菜鸟,所以下面可能是缺乏理解,但我一直在寻找/阅读整天,似乎无法找到解决方案. 我有两个模型 – 项目和技术: 项目: class Project ActiveRecord::Base attr_accessible description,:name has_and_belongs_to_many :technologies,:join_table
我是一个铁杆菜鸟,所以下面可能是缺乏理解,但我一直在寻找/阅读整天,似乎无法找到解决方案.

我有两个模型 – 项目和技术:

项目:

class Project < ActiveRecord::Base

  attr_accessible description,:name

  has_and_belongs_to_many :technologies,:join_table => :projects_technologies

end

技术:

class Technology < ActiveRecord::Base

  attr_accessible :abbr,:description,:name

  has_and_belongs_to_many :projects,:join_table => :projects_technologies

end

我的Create_Projects_Technologies迁移如下:

class CreateProjectsTechnologies < ActiveRecord::Migration
  def self.up

    create_table :projects_technologies,:id => false do |t|
        t.references :project
        t.references :technology
    end
    add_index :projects_technologies,[:project_id,:technology_id]
    add_index :projects_technologies,[:technology_id,:project_id]
  end

  def self.down
    drop_table :projects_technologies
  end
end

然后,我使用Active Admin使用以下格式创建和编辑项目模型:

ActiveAdmin.register Project do

  form do |f|
    f.inputs "Project attributes" do
      f.input :name
      f.input :description
      f.input :technologies,as: :check_boxes
    end
    f.buttons
  end

end

这正确地将我的所有技术显示为复选框,但是一旦我提交表单,我就会遇到以下错误,我无法克服:

ActiveModel :: MassAssignmentSecurity :: Admin :: ProjectsController#update中的错误

Can't mass-assign protected attributes: technology_ids

所有的帮助非常感谢:D

解决方法

简单地将technology_id添加到Project attr_accessible

attr_accessible :client,:name,:technology_ids

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读