我使用collection_select如何在控制器中处理collection_select?
<%= collection_select(:page, :user_id, @users, :id, :full_name) %>
那部分工作正常,做了一个下拉列表中。我在使用控制器保存/处理时遇到了麻烦,APIdock对该部分没有太大的帮助,而且我还没有能够找到我发现的一个例子。任何人都可以向我解释我如何处理控制器中的选定值?
我使用collection_select如何在控制器中处理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]返回将存储在当前模型记录中的值数组。
谢谢,你会如何修改这个,所以你可以修改现有的记录,而不是创建一个新的记录? –
我将如何使用它来查找预先存在的对象?我试过@ user = params [:page] [:user_id],然后@page = Page.find(@ user)以及@ page = params [:page] [:user_id]然后@ user = User.find( @用户),但他们不工作,他们没有抛出任何错误,但同时他们不返回任何值。 –
请张贴“select”标签的开头部分(查看名称),并在控制器的开头检查'params'(“'pp params'”,检查导轨控制台的输出,这是一个散列)。 – rewritten