Ruby on Rails:重新订购复选框标记

我有一个应用程序,用户可以将项目输入数据库。 其中一个字段允许用户选择多种技术。 我希望技术列表按字母顺序显示,因为目前它们按照输入数据库的顺序出现。

这是我在项目控制器中的新操作:

def new @project = Project.new @technol = Technol.new(params[:tech]) @all_technols = Technol.all tech_ids = params[:technols][:id].reject(&:blank?) unless params[:technols].nil? @project_technol = @project.projecttechnols.build respond_to do |format| format.html # new.html.erb format.json { render json: @project } end end 

这是我的新观点的一部分:

 
Technologies: .split { text-align:left; }

有没有人有任何想法? 我是rails的新手,所以在试图回答时请记住这一点。 提前致谢。

您应该订购您的技术列表:

 @all_technols = Technol.order('tech ASC') # in the controller's action 

然后在视图中使用此变量,而不是第二次调用Technol.all

 <% @all_technols.each do |technol| %> your code without changes here <% end %>