0
下面是我的API模型:軌道4個嵌套屬性有未經許可的參數錯誤
class Api < ActiveRecord::Base
validates_presence_of :name
belongs_to :service
has_many :statuses
accepts_nested_attributes_for :statuses, reject_if: proc { |attributes| attributes['name'].blank? }
end
下面是我的描述模型:
class Description < ActiveRecord::Base
validates_presence_of :value
belongs_to :status
end
下面是我的狀態模型:
下面是我新建的控制器動作:
def new
@api = Api.new
@status = @api.statuses.new
@status.descriptions.new
end
def create
@api = Api.new(api_params)
if @api.save
flash[:info] = request.original_url + ".do?apiname=" + "#{@api.name}"
redirect_to root_path
else
@api.statuses.new
render :new
end
private
def api_params
params.require(:api).permit(:name, statuses_attributes: [:name, descriptions_attributes:[:value]])
end
下面是我的新模板:
<div class="form-horizontal">
<%= form_for @api, :url => commons_path do |f| %>
<div class="form-group">
<%= f.label :name, "API Name", class: "col-sm-2 control-label" %>
<div class="col-sm-8">
<%= f.text_field :name, class: "form-control" %>
</div>
</div>
<%= f.fields_for :statuses do |status| %>
<div class="form-group">
<%= status.label :name, "Status", class: "col-sm-2 control-label" %>
<div class="col-sm-8">
<%= status.text_field :name, class: "form-control" %>
</div>
</div>
<%= f.fields_for :description do |description| %>
<div class="form-group">
<%= description.label :value, "Body", class: "col-sm-2 control-label" %>
<div class="col-sm-8">
<%= description.text_area :value, class: "form-control", rows: 12, cols: 65 %>
</div>
</div>
<% end %>
<% end %>
<%= f.submit("Create Data", class: 'btn btn-primary col-sm-offset-2') %>
<%= link_to "Cancel", root_path, class: "btn btn-danger" %>
<% end %>
後,我創造新的data.It好像只描述的值沒有保存到我的數據庫。並在我的控制檯中發現「Unpermitted parameter:description」錯誤。
任何人都知道會發生什麼?
我將其更改爲f.fields_for:說明,但也顯示錯誤。 – Dreams