Как передать переменные javascript в партиал как локальные? Рельсы 4 + Хамл
У меня есть часть, представляющая список пользователей, я хочу, чтобы он отправлял разные локальные данные для каждого выбранного пользователя, чтобы обновить часть представления скрытым вводом, приняв значение локального. У меня есть это в моих пользователей частично:
%li
%a{ :href => "#", :onclick => "test("+user.id.to_s+","+id_current_user+");return false"}
И это функция, которую я вызываю:
:javascript
function test(with_user, current_user) {
$("#messages-list").html('');
$("#message-new").append("#{escape_javascript(render( partial:'messages/form',:locals => {:recipient_id => "with_user" } ))}");
};
Идея состоит в том, чтобы отправить значение javascript with_user в локальные части партиала, но я попробовал все, чтобы это работало. Ни за что! Кто-нибудь, чтобы помочь мне в этом?
1 ответ
Это $("#message-new").append("#{escape_javascript(render( partial:'messages/form',:locals => {:recipient_id => "with_user" } ))}");
не будет работать из браузера поскольку он не имеет представления о том, как выполнить код ruby,
Я думаю, что вам, возможно, придется вернуться назад и выяснить, почему он должен отображаться таким образом.
РЕДАКТИРОВАТЬ
Это расстраивает парсер. Сервер отправляет разметку в браузер только один раз, поэтому он не будет знать о каких-либо динамических переменных javascript на клиенте после запуска. Я думаю, что должен быть лучший способ сделать это, используя AJAX.