2012-12-26 39 views
2

我會選中一個複選框,如果沒有,檢查將返回csv和html。 我遵循這個視頻,並得到了CSV工作 http://railscasts.com/episodes/362-exporting-csv-and-excel?autoplay=true檢查返回csv

現在我有一個check_box_tag那就是與表單提交。如果複選框被選中,則它應該呈現csv。

=form_tag exams_path, method: :get do 
    =text_field_tag :search, params[:search] 
    =check_box_tag "csv" 
    = submit_tag "Search by id", name: nil 

控制器它裏面有

... 
params[:format] = "csv" if params[:csv] 
respond_to do |format| 
    format.html 
    format.csv {render text:@exams.to_csv} 
end 
... 

但這不起作用。

+1

我懷疑的respond_to關閉工作不request.format的PARAMS [:格式] –

+0

那麼,如何改變request.format爲 「CSV」?或者我如何使複選框更改request.format? – sonnyhe2002

回答

2

我明白了,感謝約翰。

我需要:而不是

request.format = :csv if params[:csv] 

我原來

params[:format] = "csv" if params[:csv] 

不知道是否轉換格式是最好的一段路要走,但它正是我需要的。

+2

如果你想出了另一個答案,那麼你需要選擇那個答案作爲解決它。如果你沒有任何人的幫助,那麼選擇你的答案。看來正確的做法是選擇他的。 –

1

你可能只是這樣做:

if params[:csv] 
    render text:@exams.to_csv 
else 
    render 
end