1
새 사용자를 생성하는 양식이 있습니다.레일 : 다중 선택 선택 마지막 선택 만 제출
보기/사용자/new.html.erb
<%= form_for @user, :url => users_path do |f| %>
<select name="users" id='select-user'>
<option value="">Select at least one user</option>
<% User.all.each do |user| %>
<option value="<%= user.name %>"><%= user.name %></option>
<% end %>
</select>
<script type="text/javascript">
var select = $('#select-user').selectize({
persist: false,
maxItems: 3,
create: false,
valueField: 'name',
labelField: 'name',
searchField: ['name'],
render: {
item: function(item, escape) {
return '<div>' +
(item.name ? '<span class="select-name">' + escape(item.name) + ',</span>' : '') +
'</div>';
},
option: function(item, escape) {
var label = item.name;
return '<div>' +
'<span class="select-label">' + escape(label) + '</span>' +
'</div>';
}
},
preload: false,
load: function(query, callback) {}
});
</script>
<%= f.submit "Submit", class: "btn btn-primary" %>
<% end %>
컨트롤러/user_controller.rb
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
redirect_to root_path
else
redirect_to new_user_path
end
end
private
def user_params
params.require(:user).permit(:name, :users)
end
: 나는 옵션이 관련된 여러 사용자를 추가 할 수 있도록
gem selectize-rails
를 사용하려고 해요
new.html.erb
에 코드가 잘 작동합니다. 사용자를 최대 3 명까지 추가 할 수 있습니다. 하지만 제출할 때 params["users"]
에는 마지막으로 추가 한 사용자 만 포함됩니다. 아무리 추가하려고 했든 상관 없습니다. 왜이 사람이 될지 아는 사람 있습니까?