【发布时间】:2016-01-16 00:32:39
【问题描述】:
我想使用复选框来评价一本书。
我想要 5 个整数,每个整数都有一个复选框。只能检查一个。 喜欢: 1 2 3 4 5
每个旁边都有一个复选框。
这些整数不直接对应数据库中的任何值。
如何在我的视图中准确地执行此操作,以及如何在我的控制器中使用检查的值?我想检查选择了哪一个,然后更新数据库中的评分值。
我的查看代码:
<div class="book-2 book-text col-8">
<h2><%= @book.title %></h2>
<p>Rate book:</p>
<div>
控制器:
def detailedbook
@book = Book.find(params[:id])
end
我的费率模型:
class CreateRates < ActiveRecord::Migration
def up
create_table :rates do |t|
t.integer "user_id", null: false
t.integer "book_id", null: false
t.float "rating", null: false
t.datetime "created_at"
t.datetime "updated_at"
t.timestamps null: false
end
end
def down
drop_table :rates
end
end
我的图书模型:
class CreateBooks < ActiveRecord::Migration
def up
create_table :books do |t|
t.string "title", null: false
t.float "rating", default: 0
t.string "source"
t.integer "published"
t.datetime "created_at"
t.datetime "updated_at"
t.timestamps null: false
end
end
def down
drop_table :books
end
end
如果具有 user_id 的用户之前没有为这本书评分,我想创建一个新的对象 Rates 实例。如果他有,我会为这个用户更新 Rates 模型中的 rating 值。然后我还会完全更新特定书籍的评分(所有评分的总和/所有评分的数量)。
【问题讨论】:
-
如果只能提交一个,你应该改用单选输入
-
您可以使用单选按钮来代替。你能提供一些你的视图/控制器的代码吗?
-
甚至不知道它们的存在,谢谢。我用一些代码更新了我的问题。如果你能帮助我解决我的问题的任何部分,那就太好了:)
-
我会使用 AJAX - 在某些评级上单击将
rating、user_id和book_id值发送到某个方法,并将其放入表中。你可能在使用设计吗? -
我不知道 devise 是什么,所以我想我没有使用它。
标签: ruby-on-rails ruby checkbox