Ruby on rails 在Rails中传递选定单选按钮的值
我正在Rails中开发一个有教师和学生用户的应用程序。我想列出属于教师的所有用户,然后让教师选择要向其发送消息的学生。我有一个消息模型,它有:content和:user_id作为参数。我想根据所选学生设置:user\u id。这是我的密码: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
<% @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]”)).改变(……);