2016-08-30 8 views
0

以前にCSVファイルをインポートすると、データはソートされてアップロードされましたが、明らかに理由がないためソートされずにソートされてしまい、ソートする方法がわかりません。ソート済みのファイルルビー

これを修正するには、ファイルのアップロードコードとHTMLコードを確認しています。私は、動的ドロップダウンボックスを構築しました。これにより、ユーザーは状態を選択し、その状態で銀行名でリストされたすべての銀行を次のドロップダウンボックスに入力します。アルファベット順に表示するには、2番目のドロップダウンボックスに銀行名が必要です。以前はCSVファイルをアップロードしたときに、銀行名がアルファベット順に表示されていましたが、今はそうしていません。

ご協力いただければ幸いです。多分私はここで見落としている何かばかげた。

FDIC MODEL

def self.import(file) 
     CSV.foreach(file.path, headers: true) do |row| 
     attributes = row.to_hash 
     attributes['state'] = State.where(name: attributes['state']).first 
     Fdic.create! attributes 
     end 
     end 

HTML

<h4>Select a State</h4> 
<%= select_tag :state, options_for_select(State.all.pluck(:name)), include_blank: "States" %> 

    <h4>Select a Bank</h4> 
<%= select_tag :bank, option_groups_from_collection_for_select(@states, :fdic, :name, :id, :bank), include_blank: "Select a Bank" %> 

答えて

0

私は右のあなたの問題を理解していれば、そしてあなたのモデル状態は次のように見える場合:

class State < .. 
    has_many :banks 
    etc.. 
end 
この補正は、あなた、私を助けるべき

思う。

class State < .. 
    has_many :banks, -> { order("banks.name") } 
    etc.. 
end 

P.S. あなたがfind_byあなたのコードがより明確になります使用する場合)

attributes['state'] = State.find_by(name: attributes['state']) 
+0

はあなたに@Alex Golubenkoに感謝し、完璧に働きました! – BlueDevilPride

+0

私は比較的新しいRubyです。私の最初の本能はsort、sort_by、orderをコントローラやHTMLに追加することでした。それらの場所で注文を達成することはできますか? – BlueDevilPride

+0

@BlueDevilPride 'option_groups_from_collection_for_select'を使うと、' Bank'モデルで作業するので、モデルで注文する必要があります。コントローラーでは 'sort'や' sort_by'を使うこともできますが、 –

関連する問題