Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails多选默认值_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails多选默认值

Ruby on rails Rails多选默认值,ruby-on-rails,Ruby On Rails,我正在编写一个脚本,允许管理员为用户分配多种语言 我的multi-select工作方式如下: <%= fields_for :users_languages do |u| %> <div class="field"> <%= @lang_list.inspect %> <%= u.label :Assign_Languages %><br /> <%=

我正在编写一个脚本,允许管理员为用户分配多种语言

我的multi-select工作方式如下:

<%= fields_for :users_languages do |u| %>
        <div class="field">
        <%= @lang_list.inspect %>
            <%= u.label :Assign_Languages %><br />
            <%= select_tag :language_id, options_for_select(Language.all.collect {|lang| [lang.english, lang.id]}),:multiple => true, :prompt => 'Select Language' %>
         </div>
    <% end %>


true,:prompt=>“选择语言”%>

但当我进入编辑用户时,他们的语言不会显示为自动选择。我该怎么做呢?

通过执行以下操作来解决这个问题:

控制器:

def edit
    @user = User.find(params[:id])
    @users_langs = UsersLanguage.where("user_id = ?", params[:id])
    @lang_list = []

    @users_langs.each do |langs|
      @lang_list << langs.language_id
    end
  end
def编辑
@user=user.find(参数[:id])
@users\u langs=UsersLanguage.where(“user\u id=?”,参数[:id])
@语言列表=[]
@每个用户都有自己的语言|
@语言列表“选择语言”%>

希望这对别人有帮助

我在谷歌搜索之前做了同样的事情,看看是否有更好的方法,因为RubyMine抱怨实例变量的数量:p
<%= fields_for :users_languages do |u| %>
  <div class="field">
      <%= u.label :Assign_Languages %><br />
      <%= select_tag :language_id, options_for_select(Language.all.collect {|lang| [lang.english, lang.id]}, @lang_list),:multiple => true, :prompt => 'Select Language' %>
   </div>
 <% end %>