Я звоню
$.get('/profile', {'data_id': 0}, null, 'script');
в моем profile/index.html.haml
, когда происходит конкретное событие. Предполагается, что для загрузки profile/index.js.erb
при передаче данных JSON. В index
действии контроллера моего профиля у меня есть
@dataid = params[:data_id]
if @dataid == 0
#do something, ie set variables that index.js.erb needs
else
#do something else
end
Однако оператор if
, похоже, не работает, поэтому я считаю, что мой файл js.erb
загружается неправильно (не загружается вообще).
Однако, если я сделаю if !dataid.nil?
вместо == 0 (or some other value)
, он будет работать так же, как и до ввода оператора if / js.erb, поэтому он должен получить dataid какое-то значение ...
Также, если я не использую оператор if
, а в моем js.erb
я делаю dataid = <%= raw @dataid %>; alert(dataid);
, все загружается нормально, и предупреждение корректно - dataid равно 0. Так почему это похоже на контроллер, который устанавливает raw @dataid
, во-первых, не знает, каково значение @dataid
? Я очень смущен ...
Основная цель состояла в том, чтобы не делать все в контроллере без необходимости (как указано data_id). Также, таким образом, я думал, что смогу сделать то же самое в моем js.erb - запускать только те разделы, которые мне нужны, основываясь на этом параметре.