我已经开始使用redmine的插件,这将允许我为一个问题分配Quickbooks Online(QBO)联系人。
我为联系人创建了一个表,该表只存储每个qbo联系人的名称。
我还添加了一个迁移,以便将qbo_contact的引用添加到问题
class UpdateIssues < ActiveRecord::Migration
def change
add_reference :issues, :qbo_customer, index: true
end
end
我遇到的问题是,在编辑问题时,用户可以选择QBO联系人。当用户保存问题时,不会更新Issues.qbo_contact_id。
我觉得它可能与表单选择框
有关请告知
class QboHookListener < Redmine::Hook::ViewListener
# Edit Issue Form
# Show a dropdown for quickbooks contacts
def view_issues_form_details_bottom(context={})
selected = ""
# Check to see if there is a quickbooks user attached to the issue
if not context[:issue].qbo_customer_id.nil? then
selected = QboCustomers.find_by_id(context[:issue].qbo_customer_id).name
end
# Generate the drop down list of quickbooks contacts
select = context[:form].select :qbo_customer_id, QboCustomers.all.pluck(:name, :id), include_blank: true, selected: selected
return "<p>#{select}</p>"
#TODO save selection to Issues.qbp_customer_id
end
end
如果您需要更多内容,我已在github
分享了我的工作答案 0 :(得分:1)
问题在于,问题允许存在白/黑属性列表。
原来这是一个记录在案here
的问题已在r4491中修复。您现在可以扩展给定模型的安全属性 使用:
Issue.safe_attributes'foo','bar'
或使安全属性成为条件:
Issue.safe_attributes'foo','bar',:if =&gt; lambda {| issue,user | issue.author == user}
您可以查看redmine / safe_attributes.rb。
我只是将以下内容添加到init.rb中,以允许我的插件将qbo_customer_id添加到安全属性列表中。
# Add qbo_customer to the safe Issue Attributes list
Issue.safe_attributes 'qbo_customer_id'