Screencast: Formulare mit verschachtelten Modellen Teil 2

In dieser Woche geht es weiter mit dem zweiten Teil von Ryans Screencast zu dem Thema „Formulare mit verschachtelten Modellen“. Er wie weitere Felder dynamisch mit JavaScript, über Prototype oder Query, hinzugefügt werden können.

Download:

Download (15.9 MB, 12:40)
alternative download for iPod & Apple TV (20.2 MB, 12:40)

 

Resourcen:

Quellcode:

[html]
<!– _form.html.erb –>
<p><%= link_to_add_fields "Add Question", f, :questions %></p>

<!– _question_fields.html.erb –>
<%= link_to_remove_fields "remove", f %>

<p><%= link_to_add_fields "Add Answer", f, :answers %></p>

<!– _answer_fields.html.erb –>
<%= link_to_remove_fields "remove", f %>
[/html]

[javascript]
// application.js
function remove_fields(link) {
$(link).previous("input[type=hidden]").value = "1";
$(link).up(".fields").hide();
}

function add_fields(link, association, content) {
var new_id = new Date().getTime();
var regexp = new RegExp("new_" + association, "g")
$(link).up().insert({
before: content.replace(regexp, new_id)
});
}

// application_jquery.js
function remove_fields(link) {
$(link).prev("input[type=hidden]").val("1");
$(link).closest(".fields").hide();
}

function add_fields(link, association, content) {
var new_id = new Date().getTime();
var regexp = new RegExp("new_" + association, "g")
$(link).parent().before(content.replace(regexp, new_id));
}
[/javascript]