2013-10-15 3 views
0

У меня этот звонок на мой взгляд:Доступ из View

$.ajax({ 
     type: "GET", 
     url: "/appointments", 
     data: "dog_id="+ dog_id 
    }); 

Мой маршрут:

match '/appointments', to: 'appointments#index', via: 'get' 

контроллер действия:

def index 
     @appointments = Appointment.where("dog_id = ?", params[:dog_id]) 
     @appointments = Appointment.all 
    end 

Оба эти решения не Работа. Когда я пытаюсь извлечь события с назначением я получаю сообщение:

undefined method `each' for nil:NilClass 

Я пытаюсь получить все назначения в View:

<% @appointments.each do |appointment| %> 

Любые идеи, что не так с этим кодом?

+0

Что говорят журналы? –

+0

Вы проверили значение params [: dog_id]? Есть ли запись с этой собакой? – crazybob

+1

Вы можете сделать свой код более кратким , это эквивалентно '@appointments = Appointment.where (dog_id: params [: dog_id])' – synapse

ответ

0

Для этого АЯКС вызова JSON возвращают данные, для этого вы не можете получить доступ непосредственно в рельсах

так и можно попробовать такой код,

$.ajax({ 
    type: "GET", 
    url: "/appointments", 
    dataType: "json", 
    data: "dog_id="+ dog_id, 
    success:function(data){ 
    alert(data); 
    } 
}); 

, что возвращение «данных», как [объект Object], Вы можете зациклить его и получить значение экземпляра

экс

успеха (данные) {
var x = new Array();
предупреждение («созданный новый массив»);
для (вар я = 0; я {
х [I], X [данные [I] .ToString()] = функция() {};
}}

х возвращает значение переменной экземпляра теперь доступно для него в вашем представлении.

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