1

htmlフォームを使用してユーザーから取得したデータを、Ruby on RailsのCSVファイルに追加したいと考えています。これどうやってするの?これが私のコードです

<p>
<h2>Register using form below</h2>
<p class="error"></p>
<form action="" method="post" class="scrum-form">
<p><h3>Participant information</h3></p>
<div>
<label>Full name<span class="mandatory">*</span></label>
<input type="text" name="full_name" class="full_name" />
</div>
<div>
<label>Email<span class="mandatory">*</span></label>
<input type="text" name="email" class="email" />
</div>
<div>    
<label>Phone number<span class="mandatory">*</span></label>
<input type="text" name="phone" class="phone" />
</div>
<div>
<label>Organization name<span class="mandatory">*</span></label>
<input type="text" name="organization" class="organization" />
</div>
<div>
<label>Job title<span class="mandatory">*</span></label>
<input type="text" name="job" class="job" />
</div>
<div>
<label>Special diet<span class="mandatory">*</span></label>
<input type="text" name="diet" class="diet" />
</div>
<p><h3>Billing information</h3></p>
<div>
<label>Address<span class="mandatory">*</span></label>
<textarea cols="40" rows="5" name="address" name="address" class="address"></textarea>
</div>
<div>
<label>Postal code<span class="mandatory">*</span></label>
<input type="text" name="code" class="code" />
</div>
<div>
<label>City<span class="mandatory">*</span></label>
<input type="text" name="city" class="city" />
</div>
<div>
<label>Cost pool or reference<span class="mandatory">*</span></label>
<input type="text" name="cost_pool" class="cost_pool" />
</div>
<div>
<input type="button" name="register" value="Register" onclick="registration();" />
</div>
</form>
</p>

ここに私のアクションコードがあります

full_name = params["full_name"]
email = params["email"]
phone = params["phone"]
organization = params["organization"]
job = params["job"]
diet = params["diet"]
address = params["address"]
code = params["code"]
city = params["city"]
cost_pool = params["cost_pool"]
4

3 に答える 3

6

例を挙げます:

@file = "example.csv"

CSV.open(@file, "wb") do |csv|
  csv << ["data"]
  csv << ["data2", "data3"]
end

ここにcsvファイルがあり、それを で開きますCSV.opencsvいくつかのデータを含む常に内部に追加する必要がarraysあります。呼び出すたびに、ファイルcsv << array内の新しい行になりcsvます。また、ファイル内の要素はarrayコンマで区切られます。

したがって、例に戻ると、"example.csv"ファイル"data"の最初の行と"data2,data3"2 番目の行になります。

@phoet が回答に投稿したリンクを確認してください。例と必要なその他のものを理解するのに役立ちます。

編集済み

"wb"内部CSV.open呼び出しを変更することで、コメントの問題を解決できます。

代わりに合格すれば、次"ab"のように問題が解決すると思います。

   CSV.open(@file, "ab") do |csv|
      csv << ["your_new_next_line_data"]
    end

とにかく、ここに渡すことができるすべてのオプションのリンクがあります: http://ruby-doc.org/core-1.9.3/IO.html

于 2012-07-10T18:25:37.647 に答える
4

rubies CSV ライブラリ (別名 FasterCSV) http://apidock.com/ruby/CSVをご覧ください。

または、最新の Railscast をご覧ください: http://railscasts.com/episodes/362-exporting-csv-and-excel

于 2012-07-10T18:14:57.333 に答える
1

csv ファイルへの書き込みは、Ruby の組み込み CSV クラスを使用すると簡単です: http://ruby-doc.org/stdlib-1.9.2/libdoc/csv/rdoc/CSV.html

ただし、コントローラーをこのファイルに結合する代わりに、フォームが入力されたときにモデルを更新する (および標準データベースを使用する) という Rails パラダイムに固執するアプローチをお勧めします。次に、必要なデータをデータベースから csv にエクスポートできる rake タスクまたは管理ページを作成できます。多くの人が、この種の機能のためにActiveAdminを本当に気に入っています。

于 2012-07-10T18:17:29.383 に答える