Я прочитал все ответы для этой темы, но я прошу вас помочь bc Я до сих пор не нашел решения. Я создаю счетчик голосов, который будет читать от увеличения модели, любит счетчик и записывает обновленный счетчик ++ в модель. У меня есть index.html.erb
Ruby on Rails и Ajax
<div class="row">
<div id="tasks"><%= render @like %></div>
</div>
<div class="row">
<div id="like-form"></div>
</div>
<div class="col-md-2 col-md-offset-4">
<%= link_to new_like_path, remote: true do %>
<button class="btn btn-default">New</button>
<% end %>
</div>
модель схемы:
create_table "likes", force: true do |t|
t.string "count"
t.datetime "created_at"
t.datetime "updated_at"
end
У меня есть LikesController
def new
if Like.first.count.to_i >= 0
then Like.create(count: "0")
end
@like = Like.first.count.to_i
@like++
Like.update(0, :count => @like.to_s)
end
new.js.rb
файл
$('#like-form').html("<%= j (render 'form') %>");
$('#like-form').slideDown(350);
И я _form.html.erb
<%= @like %>
Он не хочет, чтобы сделать, и я получил
«ноль» не является ActiveModel-совместимый объект. Он должен реализовать : to_partial_path.
Я довольно новый в рельсах, надеюсь, что все это имеет смысл. Я слышал о различных способах реализации этой задачи, но, пожалуйста, помогите мне исправить предоставленный подход: отобразить форму w/ruby variable в html.
Почему столбец 'count' типа' string'? –
Оператор инкремента (++) не существует в рубине или рельсах. Вам нужно будет использовать '@ like + = 1'. –
Я предлагаю просмотреть немного синтаксиса Ruby перед перемещением на рельсы, особенно, как говорит Менелик: '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ', ' действительно странно это видеть. Последний, но не список, я считаю, что у вас большая проблема с последним, как в методе 'new':' Like.update (0,: count => @ like.to_s) 'даже не ясно, что вы пытаетесь достичь с ним –