我对我的 Rails 应用程序感到困惑。我创建了 3 个模型:user, event, category
具有以下关联:
class User
has_many :events, :dependent => :destroy
attr_accessible :name, :email, :password, :password_confirmation, :remember_me
class Category
attr_accessible :name
has_many :events
class Event
attr_accessible :address, :cost, :date, :details, :end_time, :fav, :start_time, :title, :venue
belongs_to :user
belongs_to :category, :foreign_key => :name #not sure if this foreign key is working
这个想法是Users
创建events
在单个category
. 这些类别是预先填充的,因此用户无需制作它们,只需选择要归档的类别。
我的用户和事件关联已经工作了一段时间,但由于我添加了类别模型,当我尝试创建新事件时出现“无法批量分配受保护的属性:类别”错误。
我整天都在浏览页面,似乎无法追踪错误。我尝试belongs_to :category, :foreign_key => :name
在Event
课堂上添加外键,但这似乎没有帮助。
非常感谢任何帮助、解决方案和/或正确方向的指示!
编辑 2:我是 Rails 的新手,但我想我已经从错误屏幕中找到了问题所在。说“ ActiveModel::MassAssignmentSecurity::Error in EventsController#create ”,再往下说“ app/controllers/events_controller.rb:58:in create ”,相当于这行代码:@event = current_user.events.new(params[:event])
.
如果我没看错,那就意味着发生了错误,因为我正在尝试使用category
在哈希中传递的参数创建一个新事件,但它不知道如何处理它。不幸的是,我也不知道该怎么办......
编辑 3:根据要求,这是事件控制器的创建操作:
def create
@event = current_user.events.new(params[:event])
respond_to do |format|
if @event.save
format.html { redirect_to @event, notice: 'Event was successfully created.' }
format.json { render json: @event, status: :created, location: @event }
else
format.html { render action: "new" }
format.json { render json: @event.errors, status: :unprocessable_entity }
end
end
end