Rails 4嵌套表单 – 没有将Symbol隐式转换为Integer
在我的rails 4 app中,我有一个三重嵌套路线:
devise_for :users do resources :foo do resources :marflar end end
我有一个用于创建带有嵌入式Marflar对象的新Foo的表单:
但是当我提交表格时,我得到:
TypeError in FoosController#create no implicit conversion of Symbol into Integer
我的Foo控制器的相关部分如下所示:
def new @foo = current_user.foos.build @foo.marflars.build end def create @foo = Foo.new(foo_params) if @foo.save redirect_to @foo else render action: 'new' end end .. def foo_params params.require(:foo).permit(:foo_attr, marflars_attributes: [:marflar_attr]) end
我的模型正如您所期望的那样:
class Foo < ActiveRecord::Base belongs_to :user has_many :marflars, dependent: :destroy accepts_nested_attributes_for :marflars, allow_destroy: true end class Marflar < ActiveRecord::Base belongs_to :foo end
为什么这不起作用? 这让我疯了。 我正在考虑切换到表单对象,但我想先让它工作。
您的fields_for
电话应该是公正的
<%= f.fields_for :marflars do |marflars_form| %> <%= marflars_form.text_field :marflar_attr %> <% end %>
Rails负责嵌套属性所期望的参数命名约定。
- 使用capistrano在ec2上部署rails网站,但它没有显示在浏览器上,这里是网站 – > http://passionate4.net/
- Ruby On Rails很慢……?
- 使用祖先gem添加儿童的表格
- “Ruby on Rails命令提示符”来自哪里,为什么它一直在创建“站点”文件夹?
- Rails 3和Strange Accept Headers
- RVM,Ruby 1.9.2,Rails 2.3.8,Passenger和“US-ASCII中的无效字节序列”
- Railsvalidation错误消息显示错误消息和数组
- Rails-MySQL错误 – 未初始化的常量MysqlCompat :: MysqlRes
- 单击链接在Rails中打开弹出窗口