我有一个表单,根据调用它的参数而有所不同。
前任。
testsite.local/users/new?type=client
所以如果
type
是 a
或 b
,表单将显示不同的字段。我的问题是表单填写不正确,因为如果无法正确保存用户,它会使用默认错误消息呈现表单,但也没有我的参数。
testsite.local/users/new
如何调用我的
render
操作并将此参数设置为的任何内容传递给它?这样我仍然可以保留我的内置错误消息,说明为什么无法正确提交表格并且表格是否正确?这是我的
create
行动:def create
@user = User.new(params[:user])
roles = params[:user][:assigned_roles]
if @user.save
update_user_roles(@user,roles)
if current_user.is_admin_or_root?
flash[:message] = "User \"#{@user.username}\" created."
redirect_to users_path
else
flash[:message] = "Congrats! You're now registered!"
redirect_to app_path
end
else
render :action => 'new'
end
end
最佳答案
正如另一位用户回答我的其他 related question 所阐明的那样,这就是我所追求的:
form_for @user, :url => { :action => :create, :type => @type }
...保留参数
:type
通过每个新的渲染操作(假设我在 Controller 中正确定义了它)。
关于ruby-on-rails - rails : Pass parameters with render :action?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1549055/