ruby-on-rails - Rails : In a controller, 向表单提交的参数添加一个值

标签 ruby-on-rails ruby ruby-on-rails-4 strong-parameters

在我的“用户”数据库中,我有“电子邮件”、“姓名”和“职位”。

Emailname 是通过表单提交的,但 position 是在我为新用户写入行之前在 Controller 中确定的。如何将position添加到我的alpha_user_params

def create
  position = User.order("position DESC").first
  # How can I add position to alpha_user_params????

  @user = User.new(user_params)
  if @user.save
    # success stuff
  else 
    # error stuff
  end
end

private
  def alpha_user_params
    params.require(:alpha_user).permit(:email, :producer, :position)
  end

最佳答案

如果position是用户的一个属性,你可以这样做:

  @user = User.new(user_params)
  @user.position = position
  # @user.position = User.order("position DESC").first
  if @user.save
    # success stuff
  else 
    # error stuff
  end

这不需要您向 alpha_user_params 方法添加任何内容。由于 position 属性是由您的 Controller 生成的,并且不会由用户添加/修改,因此我建议您将此属性保留在 Controller 本身内。

user_params 应该只允许用户输入/修改的属性。

关于ruby-on-rails - Rails : In a controller, 向表单提交的参数添加一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20793287/

相关文章:

javascript - 使用单页应用程序的 Rails CSRF 保护( react 、 Angular 、 Ember )

ruby-on-rails - 如果存在,我该如何按 id 查找,否则执行 find_or_initialize_by_columname(params[ :somevalue])

ruby-on-rails - 在 Controller 中运行 capybara 来测试一些东西但只能运行一次

ruby-on-rails - 更新的 ruby​​ 和 rails 给 .new .update 方法带来错误

html - 如果选中复选框,如何更改索引中的字体颜色?

ruby-on-rails - 嵌套路由

ruby - 你会如何用冰糕做玫瑰内存?

ruby-on-rails - post 方法如何在 Ruby on Rails 中工作

ruby-on-rails - 命名空间子域 Controller 和自定义布局

ruby-on-rails-4 - sidekiq - 警告 : ArgumentError: wrong number of arguments (given 0, 预计 2..3)