小编dav*_*tes的帖子

尝试使用accepts_nested_attributes_for和has_and_belongs_to_many,但未填充连接表

我正在学习RoR并尝试使用accepts_nested_attributes_for和has_and_belongs_to_many来提交传统上是两种形式的信息.我在一些网站上看到它们兼容,有些网站不兼容,有些网站不知道.作为参考,我使用的是Rails 2.3.4.我尝试使用嵌套模型上的Ryan's Scraps教程对我的解决方案进行建模

从我试图调试,似乎我有两个问题,但我不知道为什么.

  1. 当我提交带有嵌套模型的表单时,只会发布部分嵌套模型信息.我只获得第一个字段,而不是用户可能选择的"n"个字段
  2. 在发布的单个字段中,没有为我为HABTM关系创建的连接表中插入任何行.

这是我的插入尝试的一段代码和相应的日志:

律师模型:

class Attorney < ActiveRecord::Base 
  has_and_belongs_to_many :associations
  accepts_nested_attributes_for :associations, :reject_if => proc { |a| a['name'].blank? }
end
Run Code Online (Sandbox Code Playgroud)

协会模型:

class Association < ActiveRecord::Base
  has_and_belongs_to_many :attorneys
  accepts_nested_attributes_for :attorneys
  validates_presence_of :name, :message => "Please enter an association name."
end
Run Code Online (Sandbox Code Playgroud)

律师控制员:

def new
  @attorney = Attorney.new
  @attorney.associations.build

  respond_to do |format|
    format.html # new.html.erb
    format.xml  { render :xml => @attorney }
  end
end

def create
  @attorney = Attorney.new(params[:attorney])

  respond_to do |format|
    if @attorney.save
      flash[:notice] = …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails has-and-belongs-to-many

11
推荐指数
1
解决办法
1万
查看次数

嵌套模型,表单和date_select FormHelper集成

我在嵌套模型上关注了Ryan Bates 教程.我的几个嵌套模型都有与之关联的日期.在我的迁移中,它们实际上是"日期"类型.

我尝试过的一些事情和我遇到的问题

  1. date_select - 可以处理表单对象前缀,但不能处理嵌套模型属性
  2. select_year - 不适用于表单对象
  3. 通过使用(Time.now.year - 100)..(Time.now.year)填充年份的常规选择并覆盖attr访问器start_date和end_date以获取select中的值以形成日期并将其传回. 仅适用于创建,而不适用于更新
  4. 通过使用(Time.now.year - 100)..(Time.now.year)工作,将字段的数据类型更改为字符串并使用填充年份的常规选择,但在编辑时,它不会重新填充选择当前信息

任何想法或提示都会有所帮助.

编辑:before_save似乎更有前途但由于某种原因,值在保存之前进入nil但在日志转储中可见.

编辑2:有趣的是,这似乎只是'更新'上的问题,而不是'创建'.

ruby migration ruby-on-rails date

7
推荐指数
1
解决办法
1277
查看次数