2013-06-03 4 views
3

Я хочу знать, возможно ли это. У меня есть код javascript, который отображает страницу на основе информации из моего приложения Rails 2.3.17. Этот код наследуется, а не мой. Проблема в том, что я пытаюсь получить данные с сервера об объекте, о котором я не знаю во время выполнения. В основном я пытаюсь сделать это:Передача данных из javascript в .erb

var record_id = 73; 
if(<%= DataTable.find(record_id).value_of_record.nil? %>{ 
    ... 
}else{ 
    ... 

где record_id то, что я хочу передать в .erb выбора во время выполнения с помощью JavaScript. Это возможно. А если нет, можно ли каким-либо образом вызвать информацию из javascript, чтобы получить идентификатор записи, переданной внутри файла .erb? Идентификатор в настоящее время хранится в html-документе.

+6

Нет, это невозможно. Вы можете передать переменную Ruby в Javascript, но обратное не может быть сделано таким образом. Вам нужен Ajax (сделайте запрос на сервер с помощью record_id, и вы проверите рубиновые рельсы там, и отправьте ответ на javascript). – MrYoshiji

+0

Я пытаюсь сделать это сейчас. Вы знаете, как получить результат запроса с помощью prototype.js? По-видимому, это то, что они используют, и я не знаю правильного синтаксиса строки запроса. –

+0

Arf Я не знаю prototype.js очень хорошо ... У вас есть jQuery в вашем приложении? Какова ваша версия Rails, которую вы используете? – MrYoshiji

ответ

0

Как сказал MrYoshiji, вы можете использовать рубин вместо так сделать что-то вроде этого:

var record_id = <%= record_id = 5 %>; 
if(<%= DataTable.find(record_id).value_of_record.nil? %>{ 
    ... 
}else{ 
    ... 

Инициирования переменного в рубине возвращает значение, так что будет только var record_id = 73; и переменный рубин теперь доступен находке метод.

Смежные вопросы