【发布时间】:2019-05-28 14:31:47
【问题描述】:
我想创建一个View 模型,该模型是在用户完成观看课程时创建的。该模型应该有一个课程 ID 和一个用户 ID 属性。但是 Ajax 不会在观看完一堂课后创建视图模型:
application.js:
$('#video').onended(function() {
$.ajax({
url: '/views/new'
type: 'post'
});
});
视图控制器:
def create
@view = current_user.views.build
@view.lesson = Lesson.find(params[:lesson_id])
end
查看迁移:
def change
create_table :views do |t|
t.integer :lesson_id
t.integer :user_id
t.timestamps
end
end
查看模型:
belongs_to :user
belongs_to :lesson
用户模型:
has_many :views
课程模型:
has_many :views
路线:
post 'views/new' => 'views#create'
课程/show.html.erb:
<h2><%= @lesson.name %></h2>
<video id="video" controls="true" width="auto"
height="auto">
<source src="<%= url_for(@lesson.file) %>"
type='video/mp4'>
</video>
【问题讨论】:
-
您能否也向我们展示一下您最初调试的结果?只说它不起作用并没有给我们太多的继续。
-
您没有在
@view对象上调用save。您刚刚构建了一个视图并分配了一个 leeson,但您从未保存它。 -
你也可以做类似
@view = current_user.views.create(lesson_id: params[:lesson_id])的事情 -
@arieljuod 我试过了。视图模型仍未创建
标签: javascript ruby-on-rails ruby ajax