Ruby on rails 如何在RubyonRails中显示登录学生编写的消息
我想显示登录学生姓名和信息 登录后,学生可以编写信息并发送与课程相关的信息。他发送的信息与他/她的姓名和信息显示在同一页面上 我得到了名称,但消息字段获取数据库中的所有消息。如何显示特定的学生姓名和信息 这是我的密码 控制器.erbRuby on rails 如何在RubyonRails中显示登录学生编写的消息,ruby-on-rails,Ruby On Rails,我想显示登录学生姓名和信息 登录后,学生可以编写信息并发送与课程相关的信息。他发送的信息与他/她的姓名和信息显示在同一页面上 我得到了名称,但消息字段获取数据库中的所有消息。如何显示特定的学生姓名和信息 这是我的密码 控制器.erb class-CourseQueriesController您应该向Student模型中添加has\u many:course\u查询 #student.rb class Student < ActiveRecord::Base has_many :cou
class-CourseQueriesController您应该向Student
模型中添加has\u many:course\u查询
#student.rb
class Student < ActiveRecord::Base
has_many :course_queries
...
end
#student.rb
班级学生
并在控制器中的索引中方法将@course\u querys=CourseQuery.all
更改为@course\u querys=current\u student.course\u querys
现在
将只显示当前学生的课程查询
消息
如何显示特定的学生姓名和信息
你需要像帕万所写的那样,在你的模型中建立一个完整的模型
我会给你更多关于为什么这很重要的信息
ActiveRecord
Rails工作如此出色的主要原因之一是它帮助您创建和管理对象的方式。在中,对象构成了从init命令到用户输入响应的一切,Ruby是这种结构的主要指数
Rails是基于Ruby构建的,因此也是面向对象的。它使用&classes为您提供一个平台,您可以从该平台填充和操作对象:
因此,您不应该将应用程序的交互视为编辑数据库或“显示登录消息”的一种方式,而应该是调用和操作对象的一种方式
对于Rails,对象是在模型中构建的。然后可以在控制器
和视图
中使用模型数据
您的代码中似乎缺少这一点。如果你能纠正它,你的代码将变得更简单,更强大
关联
我会这样做:
#app/models/student.rb
class Student < ActiveRecord::Base
has_many :queries
has_many :coarse_queries, through: :queries
end
#app/models/course.rb
class Course < ActiveRecord::Base
has_and_belongs_to_many :coaches
has_many :queries
has_many :student_queries, through: :queries
end
#app/models/coach.rb
class Coach < ActiveRecord::Base
has_and_belongs_to_many :courses
has_many :queries
end
#app/models/query.rb
class Message < ActiveRecord::Base
belongs_to :course
belongs_to :student
belongs_to :coach (maybe)
end
#app/models/student.rb
班级学生
此结构允许学生向特定课程发送查询,并根据需要选择教练。重要的是,这将设置关联,这样您就不必在每次要填充各种对象时调用多个类
#app/controllers/course_queries_controller.rb
class CourseQueriesController <ApplicationController
def index
@queries = Query.all
@query = current_student.queries.new
end
def create
@query = current_student.queries.new query_params
if @query.save
redirect_to course_queries_path, notice: 'Query was successfully send.'
else
render :new
end
end
private
def query_params
params.require(:query).permit(:message).merge(coach_id: "2")
end
end
#app/views/queries/index.html.erb
<% @queries.each do |query| %>
<p><b><%= query.student.name %></b></p>
<%= query.message %>
<% end %>
<%= simple_form_for @query do |f| %>
<%= f.input :message %>
<%= f.button :submit , "Send or press enter"%>
<% end %>
#app/controllers/course_querys_controller.rb
class-CourseQueriesController试试
我试过了。它显示的错误类似于#`的undefined method
querys',`您能发布问题中模型之间的关联吗?我在上面添加了关联。请检查,学生模型也很好(问你:)。它起作用了。你帮了我很多:)