【问题标题】:Rails 4 Nested Form Showing UP in Edit, but not in ModalRails 4嵌套表单在编辑中显示,但不在模态中
【发布时间】:2016-12-21 13:08:58
【问题描述】:

我有一个用于编辑屏幕的表单,我还在另一个屏幕上填充为模态(当用户刚刚注册时)。但是,仅在该模式上的嵌套表单显示存在一些错误。我一直试图找到它几个小时。这是我的代码:

= form_for @user do |user|

.form-组 %label{:for => :first_name} 名 = user.text_field :first_name, class: "form-control"

%label{:for => :middle_name}
  Middle Name
= user.text_field :middle_name, class: "form-control"

%label{:for => :last_name}
  Last Name
= user.text_field :last_name, class: "form-control"

%label{:for => :image}
  Profile Picture
= image_tag @user.image.url(:thumb),  class: "img-circle" if @user.image.exists?
= user.file_field :image, class: "form-control"

%label{:for => :headline}
  Headline
= user.text_field :headline, class: "form-control"

%label{:for => :bio}
  What are you currently Involved with? (Hint Just copy your LinkedIn Highlight)
= user.text_area :bio, class: "form-control user_text_area"

%label{:for => :twitter}
  Your Twitter Handle
= user.text_field :twitter, class: "form-control"


%label{:for => :school}
  School
= collection_select(:user, :school_id, School.all, :id, :name,  {prompt: true, :required => ""}, {  class: "filter-option pull-left form-control" } )

%br/

%label{:for => :course}
Course
= user.fields_for :course_user do |cu|
  = cu.select :course_id, Course.all.map { |c| [c.name_with_intake, c.id] }, {}, class: 'filter-option pull-left form-control', id: 'courses_select'
-# = collection_select(:course, :course_id, Course.all, :id, :name, {:prompt   => "Select a Course"}, {:id => 'courses_select', class: "filter-option pull-left form-control"})

然后我的用户模式确实显示了这个:

has_one :course_user
accepts_nested_attributes_for :course_user

我坚持使用的字段是向用户添加课程的“课程字段”。现在,事情是这样的,其他人建议删除用户部分,所以代码是:

%label{:for => :course}
Course
= fields_for :course_user do |cu|
  = cu.select :course_id, Course.all.map { |c| [c.name_with_intake, c.id] }, 

或将 :course_user 更改为 CourseUser.new

%label{:for => :course}
Course
= fields_for CourseUser.new do |cu|
  = cu.select :course_id, Course.all.map { |c| [c.name_with_intake, c.id] }, 

两者都导致在模式中显示的字段。但是,两者都阻止了数据的保存。所以我想知道......出了什么问题?感谢您对此提供的任何帮助!

【问题讨论】:

    标签: ruby-on-rails forms bootstrap-modal


    【解决方案1】:

    经过漫长的一夜解决这个问题并最终拨打了求助热线,我弄清楚了问题所在。 User Controller#edit 有一行我完全忽略了它使它工作。所以你需要有 user.fields_for。如果需要,我可以帮助您解决类似的问题。

    = user.fields_for :course_user do |cu|
    

    这是最终起作用的代码。我有一些步骤要采取:

    1 - 查看服务器日志,查看解析了哪些参数。检查参数

    2 - 再次在服务器日志中,查看推送了哪些项目

    3 - 然后检查控制器中的操作以及是否添加了

    accepts_nested_attributes_for :course_user
    

    到相应的模型(更改:course_user)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多