如何在 rails 中获取选定的选项 ID
How can get the selected option id in rails
我试图从下拉列表中获取所选选项的 ID,但在创建项目时得到的是 nill ID
def create
developer_id = params[:developer_id]
parameters = project_params.merge({ user_id: current_user.id, developer_id: developer_id })
@project = Project.new(parameters)
respond_to do |format|
if @project.save
format.html { redirect_to projects_path, flash: { success: 'Project added successfully ' } }
else
format.html { render :new }
end
end
end
def project_params
params.require(:project).permit(:name, :user_id)
end
new.html.erb
<%= form_for :project, :html => {:class=>"form-group"}, url: projects_path do |f| %>
Add task: <%=f.text_field :name, class:"form-control" %><br>
<h2>Select Developer</h2>
<%= f.select :developer_id, options_for_select(@users.collect {|user|["#{user.name}","#{user.id}"]}) %><br>
<%= f.submit "Add" %>
<% end %>
developer_id
嵌套在 project
下,就像其他参数一样。
developer_id = params[:project][:developer_id]
或
developer_id = params.dig(:project, :developer_id)
当您不确定在哪里可以找到某些参数或者它们是否存在时,最简单的方法当然是查看您的应用程序日志文件。在那里你应该看到传入的请求和所有参数以及它们是如何嵌套的。
我试图从下拉列表中获取所选选项的 ID,但在创建项目时得到的是 nill ID
def create
developer_id = params[:developer_id]
parameters = project_params.merge({ user_id: current_user.id, developer_id: developer_id })
@project = Project.new(parameters)
respond_to do |format|
if @project.save
format.html { redirect_to projects_path, flash: { success: 'Project added successfully ' } }
else
format.html { render :new }
end
end
end
def project_params
params.require(:project).permit(:name, :user_id)
end
new.html.erb
<%= form_for :project, :html => {:class=>"form-group"}, url: projects_path do |f| %>
Add task: <%=f.text_field :name, class:"form-control" %><br>
<h2>Select Developer</h2>
<%= f.select :developer_id, options_for_select(@users.collect {|user|["#{user.name}","#{user.id}"]}) %><br>
<%= f.submit "Add" %>
<% end %>
developer_id
嵌套在 project
下,就像其他参数一样。
developer_id = params[:project][:developer_id]
或
developer_id = params.dig(:project, :developer_id)
当您不确定在哪里可以找到某些参数或者它们是否存在时,最简单的方法当然是查看您的应用程序日志文件。在那里你应该看到传入的请求和所有参数以及它们是如何嵌套的。