尝试通过表单创建/更新no implicit conversion of Symbol into Integer
模型时,我一直收到错误Form
。我已将其缩小为actions_attributes
中与form_params
有关的内容。如果trigger_attributes
被删除,actions_attributes
可以正常工作。我怀疑它与enum字段,双嵌套属性和/或has_many
关系有关,但不确定。
关于可能导致此错误的任何想法?
运行Rails 5.0.x和Ruby 2.3.x,以及相关的模型和控制器。
class Form < ApplicationRecord
has_one :rule
accepts_nested_attributes_for :rule
end
class Rule < ApplicationRecord
has_one :trigger
has_many :actions
accepts_nested_attributes_for :trigger
accepts_nested_attributes_for :actions
end
class Trigger < ApplicationRecord
belongs_to :rule
enum name: [:example]
end
class Actions < ApplicationRecord
belongs_to :rule
enum name: [:example]
end
class FormsController < ApplicationController
...
private
def form_params
params.require(:form).permit(
:title,
:description,
rule_attributes: [
trigger_attributes: [:name],
actions_attributes: [:name]
]
)
end
end
答案 0 :(得分:0)
我通过将actions_attributes:
更改为actions:
下的def form_params
,以及对表单进行相关更改,将fields_for :actions_attributes
更改为fields_for :actions
,从而实现了此目的}。
我经常感到困惑何时使用_attributes
以及何时不使用<button onclick="saveFile()">Save XLSX file</button>
。如果有人有关于何时使用哪些信息,如果您能提供评论中信息的链接,我将不胜感激。感谢。