Ruby on rails 在Rails中传递选定单选按钮的值

Ruby on rails 在Rails中传递选定单选按钮的值,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在Rails中开发一个有教师和学生用户的应用程序。我想列出属于教师的所有用户,然后让教师选择要向其发送消息的学生。我有一个消息模型,它有:content和:user_id作为参数。我想根据所选学生设置:user\u id。这是我的密码: <% @students = Student.all %> <% @students.each do |student| %> <% if student[:teacher_id] == @curre

我正在Rails中开发一个有教师和学生用户的应用程序。我想列出属于教师的所有用户,然后让教师选择要向其发送消息的学生。我有一个消息模型,它有:content和:user_id作为参数。我想根据所选学生设置:user\u id。这是我的密码:

<% @students = Student.all %>
    <% @students.each do |student| %>
          <% if student[:teacher_id] == @current_user.id %>
            <%= radio_button 'student', 'id', student.id %>
            <%= student.name %>
            <% @current_student = Student.find(student.id) %>
          <% end %>
    <% end %>

<%= form_for Message.new do |f| %>
   <%= f.text_area :content, class: 'messageTextarea' %> <br>
   <%= f.hidden_field :user_id, :value => @current_student.id %>
   <%= f.submit %>
<% end %>


@当前学生id%>
因此,我循环遍历所有学生,并用单选按钮打印与当前用户(教师)具有相同ID的学生。单选按钮的值是学生的id。然后我想将该值传递给消息的:user_id,以便学生查看时可以检索该值

当前,此代码始终传入列出的最后一个学生的值,而不是选定的学生的值。我怎样才能改变

<% @current_student = Student.find(student.id) %>

要查找选定的学生而不是最后一个学生

我确实使用

 <%= f.hidden_field :user_id, :value => @current_user.id %>
@current_user.id%>

这确实有效,但我当然不想要当前用户的id。谢谢你的帮助

如果你想要一个带有单选按钮的表单给学生,你需要一点JavaScript(或Jquery),你所要做的就是在这些单选按钮上放置一个侦听器,当用户单击其中一个按钮时,你可以更改
用户id
名称的
隐藏的
输入

链接中的用户示例将帮助您将侦听器置于一组单选按钮上,并更改另一个字段值,如下所示:

$('input[type=radio][name=student[id]]').change(function() {
    $('#user_id').val($(this).val());
});
您所要做的就是确保
name=student[id]
#user_id
,如果您使用此方法,您将不再需要此行:

<% @current_student = Student.find(student.id) %>


希望它能起作用。

我不确定我是否理解你在这里的意思。用户id代表什么?我的代码创建的HTML如下所示:对于单选按钮,我试图传递给隐藏字段的值:user_id为62。谢谢你的帮助!很抱歉延迟响应@abz,#user_id是一个带有Jquery的选择器,如果隐藏的输入是通过其id来选择DOM元素的,那么当用户单击单选按钮时,您会将该隐藏值的值设置为等于用户选中的单选按钮的值。您可能需要按如下方式转义student[id:$(“input[type=radio][name='student[id]”)).改变(……);