如何在控制器中处理collection_select?

时间:2012-10-01 11:44:50

标签: ruby-on-rails select collections drop-down-menu process

我使用collection_select

创建了一个下拉列表
<%= collection_select(:page, :user_id, @users, :id, :full_name) %>

该部分工作正常。我在使用控制器保存/处理它时遇到了麻烦,APIdock在这方面没有太大帮助,而且我无法得到我发现的一个例子。任何人都可以向我解释如何处理控制器中的选定值吗?

2 个答案:

答案 0 :(得分:1)

您将拥有一个值

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

获取用户

答案 1 :(得分:0)

要在模型中存储页面值,该模型应在user.rb中指定“ has_many:pages ”。

@user = User.find(params[:user_id])
@user.pages = params[:page]

params [:page]返回一个值数组,这些值将存储在当前模型记录中。