【发布时间】:2015-02-16 19:02:25
【问题描述】:
我有一个新问题,尝试用茧实现设计,但它不保存在数据库中。请帮我 !!! :D
用户模型:
class User < ActiveRecord::Base
has_many :telefonos
accepts_nested_attributes_for :telefonos, :reject_if => :all_blank, :allow_destroy => true
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
电话机型号:
class Telefono < ActiveRecord::Base
belongs_to :user
end
在我的用户控制器中:
def secure_params
params.require(:user).permit(:telefonos_attributes: [:id, :telefono, :_destroy])
end
我的应用控制器
Class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:nombre, :email, :password) }
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:email, :password, :current_password, :region_id, :ciudad_id, :nombre, telefonos_attributes: [:telefono, :user_id]) }
end
end
我的编辑视图:
<h3>Edit <%= resource_name.to_s.humanize %></h3>
<%= simple_form_for resource, :as => resource_name, url: registration_path(resource_name), :html => { :method => :put} do |f| %>
<div class="form-group">
<%= f.input :nombre, :autofocus => true, class: 'form-control' %>
<%= f.association :region, :include_blank => false %>
<%= f.association :ciudad, :include_blank => false %>
</div>
<h1>Telefono</h1>
<div id="telefonos">
<%= f.simple_fields_for :telefonos do |t| %>
<%= render 'telefono_fields', :f => telefono %>
<% end %>
<div class="links">
<%= link_to_add_association 'add telefono', f, :telefonos %>
</div>
</div>
<%= f.submit 'Update' %>
<% end %>
我的 _telefono_fields.html.erb
<div class="nested-fields">
<%= f.input :telefono %>
<%= link_to_remove_association "remove telefono", f %>
问候,
【问题讨论】:
-
在
telefonos_attributes中,您应该还有两个属性id和_destroy。这只是为了您的信息。这可能是导致此问题的原因,也可能不是。试一试。您是否在控制台中收到任何错误检查? -
谢谢,但不会在控制台中产生错误! :/ 你有教程吗?
-
不允许的参数:nombre, region_id, ciudad_id, telefonos_attributes
标签: ruby-on-rails ruby-on-rails-4 devise ruby-on-rails-3.2 cocoon-gem