【问题标题】:no implicit conversion of ActiveSupport::SafeBuffer into Integer没有将 ActiveSupport::SafeBuffer 隐式转换为 Integer
【发布时间】:2014-11-18 14:41:48
【问题描述】:

这是我的部分_new_post.html.haml

= semantic_form_for Post.new, as: :post, url: client_panel_discussion_posts_path(resource), html: { data: { discussion_posts_url: client_panel_active_submission_discussion_url(resource.client_application, id: resource.slug) }, multipart: true}, builder: ActiveAdmin::FormBuilder, remote: true, method: :post do |f|
  =f.inputs do
    =f.input :body
    =f.has_many :attachments do |a|
      =a.input :s3_url, as: :hidden, input_html: { class: "s3_url" }
      =a.s3_file_field :attachment, as: :file, class: 'js-s3_file_field'

问题是我得到以下 错误no implicit conversion of ActiveSupport::SafeBuffer into Integer 指向此 =f.has_many :attachments do |a| 行。

如果我删除 builder: ActiveAdmin::FormBuilder,我会收到 undefined method 'has_many' for #<Formtastic::FormBuilder:0x007fda897dfc88> 错误。

有人遇到过这种情况吗?

【问题讨论】:

    标签: ruby-on-rails activeadmin partial formtastic


    【解决方案1】:

    没有FormHelper has_many

    看来,您想为has_many 关联创建字段。帮助者是fields_for
    试试:

    = semantic_form_for @post, as: :post, url: client_panel_discussion_posts_path(resource), html: { data: { discussion_posts_url: client_panel_active_submission_discussion_url(resource.client_application, id: resource.slug) }, multipart: true}, builder: ActiveAdmin::FormBuilder, remote: true, method: :post do |f|
      =f.inputs do
        =f.input :body
        =f.fields_for :attachments do |a|
          =a.input :s3_url, as: :hidden, input_html: { class: "s3_url" }
          =a.s3_file_field :attachment, as: :file, class: 'js-s3_file_field'
    

    我没试过。我不知道 s3_​​file_field。

    如果你想添加/删除几个附件:有一个很好的Railscast关于这个主题,看看gem cocoon

    【讨论】:

    • 嘿,谢谢回复!我的想法很愚蠢 - 我尝试了 fields ,而不是 fields_for :D 仍然无法正常工作,它没有显示任何内容,没有添加任何 html - 好像没有编写任何代码。
    • 你有任何附件吗? field_for 不显示新附件的字段(除非您在 Post.new 上手动构建新附件)
    • 是的,我已经在我的新动作 def show post = Post.new post.attachments.build end 中得到它(没关系它在显示中,这是因为我在不同的控制器中构建它)我真的想要允许用户添加附件来发布
    • 非常感谢!我即将接受/赞成答案,因为我现在可以看到附加文件的按钮,最后一件重要的事情 - 我如何才能真正允许用户附加多个附件?
    • 我在我的回答中添加了两个链接,涵盖了这个主题。
    【解决方案2】:

    事实上,正如后来发生的那样,解决方案只是运行bundle update activeadmin

    【讨论】:

      猜你喜欢
      • 2014-03-12
      • 1970-01-01
      • 2020-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多