Добавить форму с помощью jQuery в Rails - PullRequest
0 голосов
/ 12 февраля 2012

Я пытаюсь добавить форму в тег div

$('#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); 

Кажется, что все вспомогательные методы не работают в файлах js.erb, есть ли лучший, более чистый способ сделать это, может быть, я что-то упустил.

Ответы [ 2 ]

6 голосов
/ 12 февраля 2012

Кажется, что здесь лучше использовать партиалы.Создайте частичное и поместите HTML и помощники там.Затем поместите в файл js.erb:

$('#courses_ajax').append("<%= escape_javascript(
render :partial => "your_partial", :object => your_varable, 
:locals => {:your_other_var => value, ...}  %>");
2 голосов
/ 30 июня 2013

Рендеринг частичного с содержимым в чистом HTML решает его НО я рекомендую, чтобы рельсы отображали это как:

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

, поскольку это защитит вас от CSRF-атак, генерирующих «authenticity_token».

У меня не получилось добавить больше сгенерированных рельсов <%= %> полей ввода, но с <%= form ... %> достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...