2013-09-06 5 views
0

У меня 3 ссылки с изображениями. Когда я нажимаю на ссылку, я хочу добавить свой счет +1.counter on link_to ruby ​​on rails

<a href="/home" id="push"><img src="/images/image1.gif" /></a> 
<a href="/faq"> <img src="/images/image2.gif" /></a> 
<a href="/news"><img src="/images/image3.gif" /></a> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 

<script type="text/javascript"> 
    $("#push").click(function(){ 
     $.ajax({ 
     url: "room/room_count", type: "POST"}); 
    }); 
</script> 

в мой контроллер

def room_count 
    count_method = Room.find 1 
    count_method.update_attribute(:count, count_method.count.to_i + 1) 
end 

Если я нажимаю на ссылку подсчета не обновлять, но если я replase HREF = "/ дома" на HREF = "#" все работает отлично.

Что я делаю неправильно?

Заранее спасибо

+0

Это своего рода рискованно, здесь вы можете нажимать много раз на ссылку и много проголосовать. Нет никакого сравнения с «IP-адресом избирателя», возможно, вы должны ввести в свою базу данных систему сохранения IP-адресов: если вы хотите это сделать, вы можете использовать 'request.ip' в своем контроллере, чтобы получить ip-адрес респондера;) – MrYoshiji

ответ

0

Составляет OnClick в HREF обидят тех, кто твердо верит в разделении контента от поведения/действий. Аргумент в том, что ваше содержание html должно оставаться сосредоточенным исключительно на содержании, а не на представлении или поведении.

Типичный путь в эти дни - использовать библиотеку javascript (например, jquery) и создать обработчик событий, используя эту библиотеку. Это выглядело бы так:

$("#push").click(function(){ 
     $.ajax({ 
     url: "room/room_count", type: "POST"}); 
     return false; 
    });