我使用 collection_select 制作了一个下拉列表
<%= collection_select(:page, :user_id, @users, :id, :full_name) %>
那部分工作正常。我在使用控制器保存/处理它时遇到了麻烦,APIdock 在这方面不是很有帮助,而且我无法获得我发现的一个示例。谁能向我解释如何处理控制器中的选定值?
我使用 collection_select 制作了一个下拉列表
<%= collection_select(:page, :user_id, @users, :id, :full_name) %>
那部分工作正常。我在使用控制器保存/处理它时遇到了麻烦,APIdock 在这方面不是很有帮助,而且我无法获得我发现的一个示例。谁能向我解释如何处理控制器中的选定值?
你会有价值
params[:page][:user_id]
这将对应于表单中选择的值。您可以看到它检查params
变量。
IT 是一个数字,即所选用户的 ID。您可以通过加载用户
@user = User.find(params[:page][:user_id])
但没用。事实上,如果user_id
页面的属性是可访问的,那么用通常的
@page.update_attributes(params[:page]) # in the update action
或者
@page.create(params[:page]) # in the create action
您将在页面中获取用户为@page.user
.
将页面值存储在模型中,该模型应在 user.rb 中指定“ has_many :pages ”。
@user = User.find(params[:user_id])
@user.pages = params[:page]
params[:page] 返回将存储在当前模型记录中的值数组。