我无法使用我的表格。

楷模

class User < ActiveRecord::Base
  has_many :blasts, foreign_key: "author_id"
end

class Blast < ActiveRecord::Base
  belongs_to :author, class_name: "User"
  validates :author_id, presence: true
  validates :content, presence: true, length: { maximum: 140 }
  # validates :recipients, presence: true

  [edit]
  before_validation :add_recipients

  private
  def add_recipients
    array = self.recipients
    self.recipients = ""
    array.each do |initials|
      self.recipients += "#{initials}, " unless initials.blank?
    end
    self.recipients = self.recipients[0..-3]
  end
  [end edit]
end

爆炸控制器

class BlastController < ApplicationController

def new
  @blast = current_user.blasts.new
end

def create
  @blast = current_user.blasts.build(blast_params)

  if @blast.save
    flash[:success] = "Blast sent!"
    redirect_to root_url
  else
    render :new
  end

private

  def blast_params
    params.require(:blast).permit(:content, :recipients)
  end
end

查看

应用程序/视图/爆炸/ new.html.erb

 <%= render 'shared/blast_form' %> 

应用程序/视图/共享/ _blast_form.html.erb

<%= simple_form_for @blast do |f| %>
  <%= render 'shared/error_messages', object: f.object %>
  <%= f.input :content, placeholder: "Compose new blast..." %>
  <%= f.input :recipients, as: :check_boxes, collection: User.all(order: 'last_name'), label_method: :full_name, value_method: :initials, include_hidden: false %>
  <%= f.submit "Send Blast", class: "btn btn-large btn-primary" %>
<% end %>

这段代码使我可以创建爆炸,但是接收者为零。 当我取消对收件人存在的Blast验证的注释时,不会保存新的blast,并产生错误:“收件人不能为空。” 我的调试哈希显示,尽管已提交了首字母缩写:

--- !ruby/hash:ActionController::Parameters  
utf8: "✓" 
authenticity_token: B/s22B5hrFrncxZkEUQdw2SJfpHm0qFpV2SUFg9jFR0= 
blast: !ruby/hash:ActionController::Parameters    
content: Hello world!   
recipients:
  - JC
  - AC
  - ''  
commit: Send Blast  
action: create  
controller: blasts

如果有人有任何想法,我将不胜感激。 看来应该向前挺了。 提前致谢!

===============>>#1 票数:1 已采纳

尝试将accepts_nested_attributes_for :author添加到Blast模型中,并进行一个before_validation这样的操作

class Blast < ActiveRecord::Base
  belongs_to :author, class_name: "User"
  accepts_nested_attributes_for :author


  before_validation :add_recipients

  private
  def add_recipients
    array = self.recipients
    self.recipients = ""
    array.each do |initials|
      self.recipients += "#{initials}, " unless initials.blank?
    end
    self.recipients = self.recipients[0..-3]
  end

end

并且,使像这样的强参数

def blast_params
params.require(:blast).permit(:content, recipients: [])
end

  ask by BenU translate from so

未解决问题?本站智能推荐:

1回复

Rails simple_form check_boxes将多个选择保存到数据库

我正在尝试列出具有多个选择的复选框。 我在模型中有这个数组。 我正在尝试以我的simple_form形式进行此类操作。 如何将选择保存到数据库中并能够将其作为选定的字符串值检索?
1回复

Rails simple_form object_id关联

在我的应用程序中,我有很多模型:(产品归属者到创建者,创作者属者到comagnie,公司归属者belongs_to SEO,搜索引擎优化belongs_to用户) 在我的第一个Seoscontroller中,我知道: (找到控制器工作!) 我认为在Compagniescont
2回复

关联路线的Rails 4和simple_form

在我的应用程序中,我有2个模型Foo和Bar。 Foo'has_one'Bar和Bar'belongs_to'Foo。 我的路线文件如下所示: 我正在使用simple_form gem 。 因此,对于像上面提到的那样的嵌套路由,我希望以下方法能起作用: 创建新的@bar
1回复

在Rails 4中将hstore列与simple_form集成

是否有一种将hstore与simple_form集成的好方法? 我只是找不到实现这个目标的方法。 我有一个名为widget_locations的列,我想存储:left_area1, :mid_area1, :left_area2, :mid_area2, :right_area2作为键和
1回复

Rails 4中的关联模型和simple_form

我的问题根本不应该复杂,但我不知道为什么它不起作用。 我一直在寻找答案,并且尝试了很多事情,但是问题仍然存在,因此如果我重复问题,我深表歉意。 在我的应用程序中,我有3个模型:用户,课程和类别。 用户模型has_many:课程 这是课程和类别的架构: 在我的课程表中,我
1回复

rails4,simple_form,check_box,radio_button,控制器

我已经使用脚手架生成了一个模型。 现在我想使用simple_form来显示它,并且我想在它们之间建立这些关系: sl->有两种类型:i)mrgsl。 ii)evesl。 因此,当选择sl(check_box)时,它会显示两个单选按钮并选择两个。 半天也是一个复
2回复

默认情况下,simple_form - collection_check_boxes在结尾处显示hidden_​​field

我在new.html.erb中使用simple_form的collection_check_boxes。 默认情况下,当渲染html时,它会在末尾添加隐藏字段,因为在控制器端我得到的值数组,最后一个元素为“”。 任何人都可以帮助我如何防止隐藏字段在视图上呈现? new.html.erb
1回复

由AJAX调用填充的simple_form select集合

在我看来,我有一个简单的表单,其中包含两个选择列表: 当用户从第一个列表中选择一个选项时,应根据上面的选择,使用数据库中的值填充下面的第二个列表。 由于这个原因,当用户从第一个列表中选择一个选项时,我正在发出ajax请求: 控制器看起来像这样: 此时,如何使用@su
1回复

Rails 4:没有键值的simple_form属性

有谁知道如何在rails simple_form中设置没有键值的属性? 将产生: 我想得到的是: 谢谢你的帮助!
2回复

Rails simple_form关联问题

我很难让:association helper工作。 基本上,我希望有一个包含所有32个团队的选择框,而不是无用的:team_id号,我想使用ActiveRecord魔术来显示相应团队的'abbr'或'city'。 我正在使用MySQL DB btw。 楷模 调节器 视