Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby On Rails > rails3 remote ajax


Автор: niksan 6.12.2010, 10:43
У меня следующая проблема. Делаю интернет магазин, хочу, чтобы аяксом обновлялась корзина.
Вот кнопка добавления в корзину:
Код

<%= link_to image_tag("/main/images/add_to_cart.png", :alt=>""), {:controller=>:products, :action => :add_to_cart, :id => product}, :remote => true, :class => "add_to_cart" %>

Вот код в шапке лэйаута:
Код

  <%= javascript_include_tag :defaults %>
  <script type="text/javascript" src="/main/js/common.js"></script>
  <%= javascript_include_tag :ckeditor %>
  <%= csrf_meta_tag %>

В  application.rb включен jQuery
Вот код add_to_cart.rjs
Код

$('#things').html('<%=escape_javascript render("shared/cart_box") %>');


Почему вместо отправки запроса аяксом, страница перезагружается полностью и выдается ошибка
Код

SyntaxError in Products#add_to_cart
Extracted source (around line #1):
1: $('#things').html('<%=escape_javascript render("shared/cart_box") %>');

ПЫ.СЫ. Rails 3.0.4 ruby 1.8.7

Автор: Трав 31.12.2010, 15:20
Если ты по Ид вытаскиваеш то наверно ошибка тут $('#things')
И почему не можешь написать типо в контроллере 
 render :update do |page|
    page.replace_html :things, 'your partial', :object => @your_object
end

Автор: vad4 12.5.2011, 15:13
Если страница перезагружается то проблема в том что сгенерилось хелпером

Код

<%= link_to image_tag("/main/images/add_to_cart.png", :alt=>""), {:controller=>:products, :action => :add_to_cart, :id => product}, :remote => true, :class => "add_to_cart"%>


В сгенеренной ссылки на конце в src параметре стоит знак '#'?

Автор: krutoi 20.9.2011, 13:36
Подскажите как мне дальше продолжить?


ruby 1.9.2p290 (2011-07-09) [i386-mingw32]

C:\Documents and Settings\Admin>cd blog

C:\Documents and Settings\Admin\blog>bundle install
Using rake (0.9.2)
Using multi_json (1.0.3)
Using activesupport (3.1.0)
Using bcrypt-ruby (3.0.1)
Using builder (3.0.0)
Using i18n (0.6.0)
Using activemodel (3.1.0)
Using erubis (2.7.0)
Using rack (1.3.2)
Using rack-cache (1.0.3)
Using rack-mount (0.8.3)
Using rack-test (0.6.1)
Using hike (1.2.1)
Using tilt (1.3.3)
Using sprockets (2.0.0)
Using actionpack (3.1.0)
Using mime-types (1.16)
Using polyglot (0.3.2)
Using treetop (1.4.10)
Using mail (2.3.0)
Using actionmailer (3.1.0)
Using arel (2.2.1)
Using tzinfo (0.3.29)
Using activerecord (3.1.0)
Using activeresource (3.1.0)
Using ansi (1.3.0)
Using bundler (1.0.18)
Using coffee-script-source (1.1.2)
Using execjs (1.2.6)
Using coffee-script (2.2.0)
Using rack-ssl (1.3.2)
Using rdoc (3.9.4)
Using thor (0.14.6)
Using railties (3.1.0)
Using coffee-rails (3.1.1)
Using jquery-rails (1.0.14)
Using rails (3.1.0)
Using sass (3.1.7)
Using sass-rails (3.1.2)
Using sqlite3 (1.3.4)
Using turn (0.8.2)
Using uglifier (1.0.3)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem
is installed.

C:\Documents and Settings\Admin\blog>rake db:create
(in C:/Documents and Settings/Admin/blog)
rake aborted!
uninitialized constant Rake::DSL
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2482:in `const_missing'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:8:in `<class:
TaskLib>'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:6:in `<module
:Rake>'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/tasklib.rb:3:in `<top (r
equired)>'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/testtask.rb:4:in `requir
e'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2/lib/rake/testtask.rb:4:in `<top (
required)>'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.0/lib/rails/test_unit/testing.r
ake:2:in `require'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.0/lib/rails/test_unit/testing.r
ake:2:in `<top (required)>'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.0/lib/rails/test_unit/railtie.r
b:12:in `load'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.0/lib/rails/test_unit/railtie.r
b:12:in `block in <class:TestUnitRailtie>'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.0/lib/rails/railtie.rb:183:in `
call'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.0/lib/rails/railtie.rb:183:in `
block in load_tasks'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.0/lib/rails/railtie.rb:183:in `
each'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.0/lib/rails/railtie.rb:183:in `
load_tasks'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.0/lib/rails/engine.rb:395:in `b
lock in load_tasks'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.0/lib/rails/application/railtie
s.rb:8:in `each'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.0/lib/rails/application/railtie
s.rb:8:in `all'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.0/lib/rails/engine.rb:395:in `l
oad_tasks'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.0/lib/rails/application.rb:99:i
n `load_tasks'
C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.0/lib/rails/railtie/configurabl
e.rb:30:in `method_missing'
C:/Documents and Settings/Admin/blog/Rakefile:7:in `<top (required)>'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2373:in `load'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2373:in `raw_load_rakefile'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2007:in `block in load_rakefile'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:2006:in `load_rakefile'
C:/Ruby192/lib/ruby/1.9.1/rake.rb:1991:in `run'
C:/Ruby192/bin/rake:31:in `<main>'

C:\Documents and Settings\Admin\blog>rails server
=> Booting WEBrick
=> Rails 3.1.0 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
Завершить выполнение пакетного файла [Y(да)/N(нет)]? n

C:\Documents and Settings\Admin\blog>rails generate controller home index
   identical  app/controllers/home_controller.rb
       route  get "home/index"
      invoke  erb
       exist    app/views/home
   identical    app/views/home/index.html.erb
      invoke  test_unit
   identical    test/functional/home_controller_test.rb
      invoke  helper
   identical    app/helpers/home_helper.rb
      invoke    test_unit
   identical      test/unit/helpers/home_helper_test.rb
      invoke  assets
      invoke    coffee
   identical      app/assets/javascripts/home.js.coffee
      invoke    scss
   identical      app/assets/stylesheets/home.css.scss

C:\Documents and Settings\Admin\blog>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)