首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 4表单以零形式提交数据

Rails 4表单以零形式提交数据
EN

Stack Overflow用户
提问于 2013-11-08 22:19:10
回答 2查看 876关注 0票数 0

我用了两种表格。一个用于sign_up,使用devise身份验证,另一个用于添加用户注释。我注意到,当我完成注册过程时,我为名字和姓氏添加的字段在db中以0结尾。我找到了一个解决办法,解决了这个问题:

代码语言:javascript
复制
before_filter :configure_devise_params, if: :devise_controller?
  def configure_devise_params
    devise_parameter_sanitizer.for(:sign_up) do |u|
      u.permit(:first_name, :last_name, :profile_name, :email, :password, :password_confirmation)
    end
  end

但在我的第二种形式中,我向表中添加了一个user_id列,并将其放在attr_accessible中。然而,它却以零的形式出现。我对rails非常陌生,我不确定这是一个类似于第一种形式的问题,还是完全不同的问题。

我在网上找到的所有其他解决方案似乎都指向了attr_accessible,但我认为我在那里很棒。那肯定是别的什么了。我还应该在哪里查找疑难解答呢?还有其他人经历过吗?

编辑:

第二种形式是供用户评论。看起来是这样的:

代码语言:javascript
复制
<%= simple_form_for(@status, html: {class:"form-horizontal"}) do |f| %>
    <%= f.input :user_id %>
    <%= f.input :content %>

    <div class="form-actions">
      <%= f.button :submit %>
    </div>
<% end %>

正在保存内容,但user_id为零。我最初在表中没有这个user_id --我后来在迁移中添加了这样的内容:

代码语言:javascript
复制
class AddUserIdToStatuses < ActiveRecord::Migration
  def change
    add_column :statuses, :user_id, :integer
    add_index :statuses, :user_id
    remove_column :statuses, :name
  end
end

而且,我知道attr_accessible是Rails 3的一个特性,它已经在Rails 4中被废除了。我在Gemfile中添加了gem 'protected_attributes‘,这样我就可以使用它了,因为我不知道Rails 4的约定是什么。我最好摆脱它吗?如果是这样的话,我应该做些什么来保护某些输入吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-09 22:01:44

经过一些研究后,我发现Rails 4使用强参数gem处理大量分配,这会将用户输入转移到控制器。而不是使用

代码语言:javascript
复制
attr_accessible :first_name, :last_name

在模型中,您可以在应用程序控制器中使用以下内容来处理这个问题

代码语言:javascript
复制
def user_params
    params.require(:user).permit(:first_name, :last_name)
end
票数 0
EN

Stack Overflow用户

发布于 2013-11-08 22:38:54

如果在Rails 4中使用protected_attributes,则可能需要禁用强参数。在config/application.rb中:

代码语言:javascript
复制
config.action_controller.permit_all_parameters = true

然后重新启动服务器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19869543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档