2011-08-11 5 views
1

を提出します。私は、ページからフィールドを取って、私はルビー/レール3に持っているデータベースモデルに提出したい。は、様々なフォーマットから値を取得し、私は様々なJSとjQueryテーブルと機能を持っていindex.html.erbページのタイムシートを持っているRailsのモデルに

フィールドから私が望むのは、JavaScript関数によって生成されるテキストフィールド、 Span Divと、プレーンテキスト(または他の方法)から見つけなければならないIDです。これらのフィールドの値は、Effortsと呼ばれるRuby on Railsモデルに入力する必要があります。私は、関数によって、コントローラで正常にこれを行う方法を知っている:

effort = Efforts.create!( 
:project_task_id => (get from the plain text), 
:User_id => current_user.id, 
:week_commencing => (get from a span div), 
:hours => (get from text field)) 

問題は、上記の形式でルビーで読み取ることができます私が欲しいの値を取得しています。

コード:タスク

$('#tasks_tb').html(''); 

<% @project.project_tasks.each do |task| %> 
    $('#tasks_tb').append('<tr><td><%= task.task_name %><td><%= link_to image_tag("icons/add.png"), addtimesheettask_path(task.id), :remote => true %>'); 
<% end %> 

を示すためのフィールドに

if($('#effort_<%= @project_task.id %>').length == 0) 
    $('#task_list').append('<tr><td><%= @project_task.project.project_number %> <%= @project_task.project.project_name %> - <%= @project_task.task_name %>' + 
         '<td><%= text_field :effort, :hours, :name => 'effort_' + @project_task.id.to_s, :id => 'effort_' + @project_task.id.to_s %>' + 
         '<td><%= link_to image_tag('icons/delete.png') %></tr>'); 

JSをaddngため index.html.erb

<%= stylesheet_link_tag 'demo_table2'%> 
<%= javascript_include_tag 'jquery.dataTables2.min'%> 


<fieldset> 
<h1 class="head">Timesheet</h1> 
<div class="left"> 
    <div class="week-picker"></div> 
</div> 
<div class="left"> 

<b>Project Selector</b> 
<select id="project_selector" onchange="$.ajax('/projects/' + $('#project_selector').val() + '/project_tasks.js');"> 
    <% @projects.each do |project| %> 
    <option value="<%= project.id %>"><%= project.project_number %> <%= project.project_name %></option> 
    <% end %> 
</select> 

<table border="2" width="" id='tasks' class='datatable'> 
    <thead> 
     <tr> 
      <th>Task</th> 
      <th></th> 
     </tr> 
    </thead> 
    <tbody id='tasks_tb'> 
    <!-- 
    <% @projects.each do |project| %> 
     <tr> 
      <td><%= project.project_number %></td> 
      <td><%= project.project_name %></td> 
      <td><%= link_to_function image_tag("icons/add.png"), "CreateNewRow('#{project.project_number}','#{project.project_name}')", :remote => true %></td> 
     </tr>    
    <%- end -%> 
    --> 
    </tbody> 
</table> 
</div> 

<div class="right"> 
<b>Recently Viewed</b> 
<table> 
    <tr> 
    <th>Project No.</th> 
    <th>Project names</th> 
    <th></th> 
    </tr> 
    <tr> 
    <td>123</td> 
    <td>Test</td> 
    <td><%= link_to image_tag("icons/add.png") %></td> 
    </tr> 
</table> 
</div> 
</fieldset> 

<fieldset> 
    <b><center>Hours for Week commencing: <span id="startDate"><%= Date.today.beginning_of_week.strftime('%d/%m/%Y') %></span></center></b> 
</fieldset> 

<!-- Task list table --> 

<!-- Hours list table --> 
<fieldset> 

<div class="left"> 
    <table> 
     <tr> 
      <td>Leave</td> 
      <td><input class="dayinput" type="text" name="Leave" placeholder="0"></td> 
     </t> 
     <tr> 
      <td>TOIL</td> 
      <td><input class="dayinput" type="text" name="TOIL" placeholder="0"></td> 
     </tr> 
     <tr> 
      <td>Sick</td> 
      <td><input class="dayinput" type="text" name="Sick" placeholder="0"></td> 
     </tr> 
     <tr> 
      <td>Total</td> 
      <td><input id="total" class="total_low" type="text" value="0" disabled=""> 
     </tr> 
    </table> 
    </div> 

    <div class="right"> 

    <b>Tasks this week</b> 

    <ul id="task_list"> 
     <form name="frmMain" method="post"> 
     <table width="470" border="1" id="tbExp"> 
      <tr> 
      <td><div align="left">Task Name</div></td> 
      <td><div align="left">Hours </div></td> 
      <td><div align="center"></div></td> 
      </tr> 
     </table> 

     <input type="hidden" name="hdnMaxLine" value="0"> 
     </form> 
    </ul> 
    <button>Submit</button> 
</div> 
</fieldset> 

<%= javascript_include_tag 'timesheet'%> 

jsが私が間違ってツリーを吠えアム方法で私はこれをしたいですか?私はレールにも全く新しいです。

答えて

0

あなたがしたいことはすべて可能です。あなたがしているのはレールのフォーム(http://guides.rubyonrails.org/form_helpers.html)です。ガイドに従ってレールヘルパー経由でフォームを作成する場合は、フォームを送信するときに、さまざまなフォームフィールドのすべてのデータが、paramsハッシュ経由でフォームを送信したコントローラで使用できるようになります。

あなたがしなければならないだろうすべては、paramsハッシュからの各種データを引き出し、あなたの新しいモデルオブジェクトを構築しています。あなたがに必要な手順は以下のとおりです。

  • は、必ずそれが、これは7つの安らかなアクションの少なくとも二つが必要になります、などEffortsControllerのようなコントローラを作成
  • を一緒にハングアップする方法を理解するためにフォームヘルパーについてのガイドを読みます(newcreate)、ここではコントローラの基本について読む(http://guides.rubyonrails.org/action_controller_overview.html
  • http://guides.rubyonrails.org/routing.html)ここでは、ルーティングについて読み、あなたのコントローラのアクションにURLをマッピングするために、いくつかのルートを作成するには、フォーム
  • について学んだものを使用してビューを作成します
  • あなたのページが読み込まれてJavaScriptが実行され、必要な動的なものが生成されたら、利用可能なデータはすべてフォームコントロールに保存されていることを確認してください(あなたはJavaScriptでページの別の部分からいくつかの情報を引っ張っている場合、ユーザーはそれを見たくない)隠されたあなたは、あなたが
+0

を必要とするすべてのデータにアクセスするフォームを送信すると

  • 私はあなたの言っていることを知っていますが、私はintially.Thringを行うには、コントローラを介して属性を提出することです...あなたはこれを行う方法を知っていますか? – SD1990

  • +0

    コントローラーを介してサブミットすると、コントローラーアクションにサブミットすることを意味します。コントローラのアクションは、データをparamsハッシュから引き出し、それを使ってモデルオブジェクトを構築することができます。あなたが何か違うことをしようとしているなら、あなたはもう少し具体的にする必要があります。 – skorks

    +0

    申し訳ありませんが、私は私の変数を持って、私の変数を取り、努力モデルからレコードを作成するために努力コントローラから作成メソッドを使用するメソッドに渡す私の変数を持っていることです。 – SD1990

    関連する問題