【发布时间】:2016-05-30 12:39:42
【问题描述】:
如果我在这里找不到解决方案,我不知道我应该去哪里寻找......
我知道有正确、简单的解决方案……但我就是不明白。
我有 3 个模型...
方案.rb
class Scheme < ActiveRecord::Base
has_many :projects
has_many :custom_issue_field_definitions, through: :scheme_custom_issue_field_definitions
has_many :scheme_custom_issue_field_definitions
end
CustomIssueFieldDefinition.rb
class CustomIssueFieldDefinition < ActiveRecord::Base
has_many :schemes, through: :scheme_custom_issue_field_definitions
has_many :scheme_custom_issue_field_definitions
belongs_to :custom_issue_field
end
SchemeCustomIssueFieldDefinition.rb
class SchemeCustomIssueFieldDefinition < ActiveRecord::Base
belongs_to :scheme
belongs_to :custom_issue_field_definition
end
加入模型有 3 个附加字段...类型:布尔值。
我想更新 scheme_custom_issue_field_definitions 表。控制器和表单应该是什么样子?
更新:
在控制台中我可以这样更新它:
a = Scheme.first
b = CustomIssueFieldDefinition.first
c = a.scheme_custom_issue_field_defintitions.find_or_create_by(custom_issue_field_definition: b)
c.update_attributes(visible: 1, reportable: 0, required: 0)
下次更新:
现在表格看起来像这样(完全错误):
<%= simple_form_for @scheme_new_custom_issue_field, url: configurations_scheme_path(@scheme), method: :put do |f| %>
<% @available_custom_issue_field_definitions.each do |custom_issue_field| %>
<tr>
<td><%= custom_issue_field.label %></td>
<td><%= f.input :visible, as: :boolean %></td>
<td><%= f.input :reportable, as: :boolean %></td>
<td><%= f.input :required, as: :boolean %></td>
</tr>
<% end %>
<%= f.button :submit, class: "btn btn-primary" %>
<% end %>
和schemes_controller
def update
@scheme = Scheme.find(params[:id])
@scheme_new_custom_issue_field = @scheme.scheme_custom_issue_field_definitions.
find_or_create_by(scheme_id: @scheme, custom_issue_field_definition_id: params[:custom_issue_field_definition_id])
if @scheme_new_custom_issue_field.update_attributes(scheme_custom_issue_field_definition_params)
flash[:success] = "Scheme has been successfully updated"
redirect_to :back
else
render :edit
end
end
【问题讨论】:
-
您使用的 Db 可视化工具是什么?只是好奇
-
它的 MySql 工作台
标签: mysql ruby-on-rails ruby-on-rails-4 simple-form