Как получить доступ к переменной экземпляра внутри функции Javascript в приложении Ruby on Rails? - PullRequest
4 голосов
/ 01 июля 2010

У меня есть форма для редактирования профилей. Rails автоматически генерирует идентификатор формы в виде 'edit_profile _ ##', где ## - идентификатор профиля текущего пользователя (экземпляр переменной- @ profile_id). Мне нужно использовать этот идентификатор формы для моих функций JavaScript. Есть ли способ получить идентификатор профиля текущего пользователя внутри js? Или есть способ, которым я могу отменить автоматическую генерацию идентификаторов по рельсам?

Ответы [ 3 ]

8 голосов
/ 01 июля 2010

Вы должны отправить это, используя параметр функции

.html.erb

<script type="text/javascript">
   var user_id = <%= @profile_id %>; // for integer
   var user_name = '<%= @profile_name %>'; // for string

   abc(user_id)// this is your function in .js file

</script>

.js

 function abc(id){
   alert(""+id)
 }
1 голос
/ 01 июля 2010

Используете ли вы нормальные * .html.erb представления?

Разве вы не можете сделать что-то вроде:

<script type="text/javascript">
    user_id = <%= @profile_id %>;
</script>

0 голосов
/ 26 июня 2017

Допустим, у вас есть @user = {'name'=>'steve'} в контроллере

Теперь ваша HTML-страница может отображать <p> <%=@user['name']%> </p>

Теперь допустим, что вы хотите иметь доступ к @user в вашем .jsфайл;добавьте thisThing & data-url к вашему тегу <p id="thisThing" data-url="<%=@user%>" > <%=@user['name']%> </p>

в вашем файле .js var userInfo = $('#thisThing').data('url')

теперь вы получили userInfo в вашем .js (в строке)

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