Ruby on rails 如何在RubyonRails中显示登录学生编写的消息

Ruby 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

我想显示登录学生姓名和信息

登录后,学生可以编写信息并发送与课程相关的信息。他发送的信息与他/她的姓名和信息显示在同一页面上

我得到了名称,但消息字段获取数据库中的所有消息。如何显示特定的学生姓名和信息

这是我的密码

控制器.erb


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',`您能发布问题中模型之间的关联吗?我在上面添加了关联。请检查,学生模型也很好(问你:)。它起作用了。你帮了我很多:)