2012-02-12 12 views
0

私はdivタグのすべてのヘルパーメソッドがjs.erbファイルで作業していないよう追加フォーム

$('#courses_ajax').html('<h1>Materie: <%= @course.name %></h1>'); 
msg = "<form accept-charset='UTF-8' action='/add_by_course' class='form-horizontal' data-remote='true' id='add_by_courses_id' method='post'>"; 
msg += "<table class='table table-condensed table-bordered'>"; 
msg +="<th>Nume Elev</th><th>Nota</th><th>Absente</th>"; 
<% @students.each do |student|%> 
    msg +="<tr><td><%= student.name%></td>"; 
    msg +="<td><input class='span2' id='course_grade' name='grade[student_id]' size='30' type='number' min=1 max=10 /></td>"; 
    msg +="<td><input class='span2' id='course_absence' name='absence[student_id]' size='30' type='datetime' /></td>"; 
    msg +="</tr>"; 
<%end%> 
msg +="</table><input class='btn-primary' name='commit' type='submit' value='Salveaza' />"; 
msg +="</form>"; 
$('#courses_ajax').append(msg); 

にフォームを追加しようとしているが、より良い、よりクリーンでありこれを行う方法、多分私は何かが不足している。

答えて

6

ここではパーシャルを使用する方が良いようです。部分的にHTMLとヘルパーを作成します。それ 解決純粋なHTML内のコンテンツとの部分をレンダリング

$('#courses_ajax').append("<%= escape_javascript(
render :partial => "your_partial", :object => your_varable, 
:locals => {:your_other_var => value, ...} %>"); 
2

しかし、私はあなたが、レールはそれが好きでレンダリングしてみましょうお勧めします:次に、あなたにjs.erbファイルを置く

<%= form_for(@xxxx) ... %> ... "html here" ... <%end%> 

をそれがあなたを守ってくれるようCSRF攻撃から "authenticity_token"を生成します。

<%= %>入力フィールドを生成したレールを追加するのには機能しませんでしたが、<%= form ... %>は十分です。

関連する問題