【问题标题】:Data which user saved make the initial value of checkbox [duplicate]用户保存的数据使复选框的初始值[重复]
【发布时间】:2021-04-26 13:19:10
【问题描述】:

背景

在我的应用中,用户可以从复选框中选择他们能够在个人资料编辑页面 (users/edit.html.erb) 上使用的多种语言。多对多关系已经写好了,可以正确保存多条数据。

现在,当用户返回他们的个人资料编辑页面时,所有复选框都显示为空白。我想用"checked"显示用户选择并保存的语言。

用户/edit.html.erb

<li>
 <div class="col-1">Spoken languages:</div>
   <div class="col-2">      
     <label><input type="checkbox" name="language[]" value="1">Japanese</label>
     <label><input type="checkbox" name="language[]" value="2">English</label>
     <label><input type="checkbox" name="language[]" value="3">Chinese</label>
     <label><input type="checkbox" name="language[]" value="4">Spanish</label>
  </div>    
</li> 

我想做什么

我搜索了这种函数,但我只找到了如何制作一个特定的初始值(such as always check "English")。如果有人给我建议,我将不胜感激。

版本

红宝石 2.6.4p104 RubyGems 3.0.3 导轨 5.2.3

【问题讨论】:

标签: ruby checkbox ruby-on-rails-5


【解决方案1】:

我能够用 include 方法解决这个问题。非常感谢。

<label><input type="checkbox" name="language[]" value="1" <%= "checked='checked'" if @user.language_ids.include?(1) %>>Japanese</label>
<label><input type="checkbox" name="language[]" value="2" <%= "checked='checked'" if @user.language_ids.include?(2) %>>English</label>
<label><input type="checkbox" name="language[]" value="3" <%= "checked='checked'" if @user.language_ids.include?(3) %>>Chinese</label>
<label><input type="checkbox" name="language[]" value="4" <%= "checked='checked'" if @user.language_ids.include?(4) %>>Spanish</label>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 2019-03-06
    相关资源
    最近更新 更多