在rails中填充复选框值

时间:2015-07-04 16:13:22

标签: ruby-on-rails

我的表单中有一个复选框。让我们说我创建了一条记录,其中'Telegram'已经选中,'怎么了未经检查的。当我编辑表格时,我想看电报已经为我检查过了。这是我尝试的:

<%= check_box_tag 'social[]', "Telegram", @user.social.include?("Telegram ") %>

所以第三个参数设置正确检查了我的复选框的值。我想在这段代码中只使用一个部分调用表单。如果我将此代码用于新代码,我将收到一个明显的错误:

undefined method `include?' for nil

当然对于新方法我没有@ user.social = nil。 我可以使用

在new.html.erb中创建不同的表单

 <%= check_box_tag 'social[]', "Telegram" %>

像这样,但我想要DRY解决方案

1 个答案:

答案 0 :(得分:0)

在我等待回答的同时,我尝试了这个并且有效。

在application_helper中:

  def set_social_checkbox(model, check_box_text )
    if model.social.present?
      model.social.include?(check_box_text)
    else
      false
    end
  end

在形式上我使用它:

set_social_checkbox(@user,'What\'s up')