我有一个非常简单的模型,每个事件都有很多外汇。我正在尝试创建一个嵌套的表单来创建具有一堆外汇的新事件。
def start_main_loop(self):
while 1:
ret, frame = self.current_state.read()
if cv2.waitKey(1) & 0xFF == ord('q'):
self.close()
break
if ret:
cv2.imshow('Game', frame)
架构是这样的:
class Event < ActiveRecord::Base
has_many :forexes
accepts_nested_attributes_for :forexes
end
class Forex < ActiveRecord::Base
belongs_to :event
end
然后我尝试使用rails控制台中的以下代码创建新对象。它失败了。
ActiveRecord::Schema.define(version: 20180505093823) do
create_table "events", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "base"
end
create_table "forexes", force: :cascade do |t|
t.string "code"
t.float "rate"
t.integer "event_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
add_index "forexes", ["event_id"], name: "index_forexes_on_event_id"
end
这让我误解了这个错误。
Event.new( name: "11", base: "HKD", forexes_attributes: [ {code: "RMB", rate:1}, {code: "CNY",rate:2}])
我知道这是一个非常基本的问题。在不同的地方进行研究后,我尝试了许多不同的方法。我无法调试它。感谢您的帮助。
答案 0 :(得分:-1)
在您的事件控制器中,您需要在event_params方法中包含forexes_attributes以及默认值
def event_params
params.require(:event).permit(forexes_attributes: Forexes_attribute_names.map(&:to_sym).push(:_destroy))
end