我的表单中有一个复选框。让我们说我创建了一条记录,其中'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解决方案
答案 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')