Witam, mój problem polega na tym, że chciałbym aby po wysłaniu formularza strona nie była przeładowywana a jedynie jej fragment oznaczony divem = “name” wyświetlający zmienną @name, której początkowa wartość = “Kazik”. Akcja add_body_part zdaje się powinna przypisać zmiennej tymczasowej wartość = “Zenek”, a szablon add_body_part.rjs powinien podmienić wartość “Kazik” na “Zenek”.
Mimo wszystko tak nie jest a przeglądarka wyrzuca mi błąd:
try {
Element.update("name", "Zenek\n");
} catch (e) { alert('RJS error:\n\n' + e.toString()); alert('Element.update(\"name\", \"Zenek\\n\");'); throw e }
mój kontroler:
[code]class BodyPartController < ApplicationController
layout ‘user’
def index
@name = “Kazik”
end
def add_body_part
@name = “Zenek”
end
end[/code]
index.erb
[code]<% content_for :content do %>
<% form_for :new_body_part, @new_body_part, :url => { :action => :add_body_part } do |form| %>
<% form.label :name %>Nazwa | <%= form.text_field :name %> |
<%= submit_tag “Dodaj część ciała” %> |
<% end %>
<% end %>[/code]
add_body_part.erb
page.replace_html("name", :partial => "body_part/partial_templates/name", :object => @name)
_name.erb w podkatalogu partial_templates
<%= @name %>
zaznaczam, że w layout’cie dodaję biblioteki JS dla Railsów
[code]…
<%= @page_title or 'Page Title' %> <%= javascript_include_tag :defaults %> ...[/code] Z góry dzięki za zainteresowanie.