标签: formtastic

使用关联(has_one)模型中的字段和rails中的formtastic

我搜索并尝试了很多,但我无法按照我的意愿完成它.所以这是我的问题.

我的模特是:

class User < ActiveRecord::Base
  has_one :profile
  accepts_nested_attributes_for :profile
end

class Profile < ActiveRecord::Base
  attr_accessible :user_id, :form, :title, :name, :surname, :street, :housenumber, :zipcode, :place, :phone, :mobile, :fax, :url 
  belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)

在我看来:

<% semantic_form_for @user do |form| %>
  <%= form.inputs :login, :email, :password%>
  <% form.semantic_fields_for :profile do |profile| %>
    <%= profile.inputs %>
  <% end %>
  <%= form.buttons %>  
<% end %>
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我编辑一个人时,它会向我显示配置文件中的数据.我想,即使在创建用户时,也会显示配置文件中的字段.

非常感谢!

ruby-on-rails associations formtastic

2
推荐指数
1
解决办法
2522
查看次数

rails formtastic嵌套表单警告:无法批量分配受保护的属性

我跟随模特:

class CapstoneMilestone < ActiveRecord::Base

  attr_accessible :capstone_id, :milestone_id, :rank, :id, :status, :statusweight, :rating, :ratingweight
  belongs_to :milestone
  belongs_to :capstone

  accepts_nested_attributes_for :capstone, :allow_destroy => false
  accepts_nested_attributes_for :milestone, :allow_destroy => false


end

class Milestone < ActiveRecord::Base

  has_many :capstone_milestones
  has_many :capstones, :through => :capstone_milestones
  attr_accessible :id, :name, :description, :department_id, :project

  accepts_nested_attributes_for :capstone_milestones, :allow_destroy => true

end
Run Code Online (Sandbox Code Playgroud)

我也有一个formtastic形式:

<% semantic_form_for(@capstone_milestone) do |form| %>

    <%= form.semantic_errors :state %>
    <% form.inputs do %>
      <%= form.input :capstone_id , :as => :select, :collection => Capstone.all %>
      <%= form.input :milestone_id, …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails formtastic

2
推荐指数
1
解决办法
2011
查看次数

ActiveAdmin,Formtastic和Paperclip:Not Rendering File对话框

我正在使用Ruby on Rails实现通用媒体库.我选择ActiveAdmin来处理我的任务的管理部分,到目前为止它运行良好,除了一件事:它没有按预期显示"选择文件"对话框.

这是ActiveAdmin的"媒体"部分的表单.我有一个名为"Medium"的模型,其中包含以下字段(除了idtimestamp:

  • asset_file_name
  • asset_file_size
  • asset_content_type
  • asset_updated_at

我的Medium模型看起来像这样:

class Medium < ActiveRecord::Base
  has_and_belongs_to_many :galleries
  has_and_belongs_to_many :entities

  has_attached_file :asset, :styles => { :medium => "300x300>", :thumb => "100x100>" }

  attr_accessible :asset
end
Run Code Online (Sandbox Code Playgroud)

我将它添加到ActiveAdmin表单中,如下所示:

  form :html => { :enctype => "multipart/form-data" } do |f|  
    f.input :asset, :as => :file
    f.buttons
  end
Run Code Online (Sandbox Code Playgroud)

这是我的ActiveAdmin页面的屏幕截图: 新媒体

我认为我是如何实现这一点没有错.我已经读过,Formtastic历来存在回形针的问题,我不反对切换到attachment_fu或任何其他合适的解决方案.

我还应该注意:我知道我可以添加自定义部分.这不是我理想的解决方案,因为我想保留Formtastic DSL中的所有内容.

谢谢!

ruby-on-rails paperclip formtastic activeadmin

2
推荐指数
1
解决办法
3473
查看次数

Rails 3 iso-3166-country-select插件如何包含空白和设置优先级国家?

我正在使用ActiveAdmin(使用Formtastic)和iso-3166-country-select插件用于国家/地区选择菜单.

我希望插件首先包含一个空白选项,以防用户忘记选择国家/地区,它将收到验证错误.但是现在它的设置方式,澳大利亚位居榜首,因此如果用户忘记设置国家,澳大利亚就会成为他们的国家.

该插件有一些优先国家设置,如澳大利亚,加拿大,英国和美国,我想改变优先国家,但我无法找到他们如何将这些国家作为优先事项.代码有一些注释我尝试添加priority_countries数组但无法使其工作.我想这是因为可能Formtastic或ActiveAdmin将它们设置在其他地方.

我只是在activeadmin文件中有这个

f.inputs "Company Contact Details" do
  f.input :address
  f.input :city
  f.input :state
  f.input :postal_code
  f.input :country
  f.input :business_phone
  f.input :business_phone_2
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails formtastic activeadmin

2
推荐指数
1
解决办法
2383
查看次数

Rails formattastic 正在要求一个国家/地区插件..我不需要它。有人知道如何告诉它我不想要它吗?

我正在使用 formattastic,并且我有一个野外国家/地区。当我尝试显示屏幕时,我收到此错误。

要使用 :country 输入,请安装 Country_select 插件,如下所示:https: //github.com/jamesds/country-select

现在。我不想使用任何插件..它是自由文本,我想保持这种状态。

有人知道如何取消这个要求吗?应该很容易……但如果我能看到如何做,我会很烦恼。

= semantic_form_for @store, {:html => { :class => "form-horizontal" }} do |f|
  = f.input :default_country
Run Code Online (Sandbox Code Playgroud)

country ruby-on-rails formtastic

2
推荐指数
1
解决办法
910
查看次数

在ActiveAdmin中获取Formtastic以使用自定义表单输入构建器

更新:所以,我发现了这一点,显然这就是为什么这种旧的做事方式不起作用,ActiveAdmin必须使用Formtastic 2.x. 按照指示,我现在创建了一个文件app/inputs/date_picker_input.rb,如下所示:

class DatePickerInput
  include Formtastic::Inputs::Base

  def to_html
    puts "this is my datepickerinput"
  end
end
Run Code Online (Sandbox Code Playgroud)

我的控制器现在看起来像这样:

  f.input :open_date, :as => :date_picker
  f.input :close_date, :as => :date_picker
Run Code Online (Sandbox Code Playgroud)

但现在我遇到了这个错误:

ActionView::Template::Error (undefined method 'html_safe' for nil:NilClass): 1: render renderer_for(:edit)

有什么想法吗?



我遇到了一个问题,Formtastic自动将日期格式化为我不想要的格式(Ymd h:i:s Z),当我尝试渲染时:as => string,我可以在该字段上使用日期选择器.在试图解决这个问题时,我遇到了这个解决方案.

它似乎有意义,是我正在处理的完全相同的问题.但是,我似乎无法实现修复,我想知道是否因为Formtastic正在通过ActiveAdmin使用.所以,这就是我试图做的事情:

在控制器中,我已经改变了方法:

f.input :open_date, :as => :date

我也试过这个,虽然我的问题甚至无法达到这一点:

f.input :open_date, :as => :date_input

lib/datebuilder.rb使用以下代码创建了一个文件:

class DateBuilder < Formtastic::SemanticFormBuilder 
  def date_input(method, options) 
    current_value = @object.send(method) 
    html_options ||= …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails formtastic ruby-on-rails-3 activeadmin

2
推荐指数
1
解决办法
3984
查看次数

semantic_form_for的提交按钮取消输入字段

我正在尝试使用以下代码在新页面中使用active-admin创建表单:

ActiveAdmin.register_page "Attach Logger" do
  content do
    semantic_form_for :project do |f|
      f.inputs do
        f.input :owner, as: :select, collection: Logger.where(:tested => false)
      end
      f.actions
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

但我只看到HTML中没有select标签的按钮:

<div id="active_admin_content" class="without_sidebar">
  <div id="main_content_wrapper">
    <div id="main_content">
      <form accept-charset="UTF-8" action="/activeadmin/attach_logger" class="formtastic project" method="post" novalidate="novalidate">
        <div style="margin:0;padding:0;display:inline">
          <input name="utf8" type="hidden" value="&#x2713;" />
          <input name="authenticity_token" type="hidden" value="YjpVXb+RYu6xX7IggTQys77bsS98ChuJU02vDZeZR+s=" />
        </div>
        <fieldset class="actions">
          <ol>
            <li class="action input_action " id="project_submit_action">
              <input name="commit" type="submit" value="Submit Project" />
            </li>
          </ol>
        </fieldset>
      </form>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

当我注释掉时,f.actions我可以在HTML中看到select标签:

<div id="active_admin_content" …
Run Code Online (Sandbox Code Playgroud)

html formtastic activeadmin ruby-on-rails-4

2
推荐指数
1
解决办法
639
查看次数

"错误的参数数量(1表示0)"使用Rails 4,Formtastic和Paperclip加载文件输入字段时出错

我正在尝试使用Rails 4中的Paperclip和Formtastic为图像创建一个简单的上传表单.我在加载表单视图时收到此错误消息:

wrong number of arguments (1 for 0) 
Run Code Online (Sandbox Code Playgroud)

这是我的_form.html.erb:

<%= semantic_form_for @image, :html => { :multipart => true } do |f| %>
    <%= f.input :attachment, :as => :file %>
    <%= f.submit %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

当我使用常规rails file_field助手时,它工作正常,如下所示:

<%= f.file_field :attachment %>
Run Code Online (Sandbox Code Playgroud)

这是我的模特:

class Image < ActiveRecord::Base
  has_attached_file :attachment, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
  validates_attachment_content_type :attachment, :content_type => /\Aimage\/.*\Z/
end
Run Code Online (Sandbox Code Playgroud)

这是我的gemfile的一部分:

ruby "2.1.0"
gem 'rails', '4.0.2'
gem "formtastic", github: "justinfrench/formtastic"
gem "paperclip", …
Run Code Online (Sandbox Code Playgroud)

paperclip formtastic ruby-on-rails-4

2
推荐指数
1
解决办法
1392
查看次数

如何使用从 ERB 部分呈现的 ActiveAdmin 编辑表单中的选项卡

由于多种技术原因,我不得不将我一直使用的 ActiveAdmin 编辑表单更改为 ERB 部分。

该表格非常庞大,我必须将其分成多个选项卡。尝试通过<% tabs do %>在 ERB 部分中使用来添加选项卡时,输出中会出现以下错误rails server

Completed 500 Internal Server Error in 209ms

ActionView::Template::Error (undefined method `tabs' for #<#<Class:0x007fb1827cdbf8>:0x007fb181b16d60>):
    1: <%= semantic_form_for [:admin, @consignment], builder: ActiveAdmin::FormBuilder, html: { enctype: 'multipart/form-data' } do |f| %>
    2:   <% f.semantic_errors *f.object.errors.keys %>
    3:   
    4:   <% tabs do %>
    5:   
    6:     <% tab 'Foo' do %>
    7:   
  app/views/admin/consignments/_form.erb:4:in `block in _app_views_admin_consignments__form_erb__783297827544755550_70200180247600'
  app/views/admin/consignments/_form.erb:1:in `_app_views_admin_consignments__form_erb__783297827544755550_70200180247600'
Run Code Online (Sandbox Code Playgroud)

我知道我可能必须在某个地方包含一个帮助程序才能呈现选项卡,但我不确定要使用哪个帮助程序以及在哪里包含它。

ruby ruby-on-rails formtastic activeadmin ruby-on-rails-4

2
推荐指数
1
解决办法
2479
查看次数

使用MongoMapper时,在编辑资源时不会检查Formtastic复选框

使用以下Store和Service模型,使用MongoMapper进行管理:

class Store
  include MongoMapper::Document         
  key :service_ids, Array, :typecast => 'ObjectId'
  many :services, :in => :service_ids
end

class Service
  include MongoMapper::Document         
  key :name, String  
  many :stores, :foreign_key => :service_ids  
end
Run Code Online (Sandbox Code Playgroud)

我有这个表格,用Formtastic完成:

<%= semantic_form_for @store, :url => admin_store_path(@store), :method => :put do |form| %>
  <%= form.input :service_ids, :label => "Select Store Services", 
                               :as => :check_boxes, 
                               :collection => Service.all %>
<% end -%>
Run Code Online (Sandbox Code Playgroud)

控制器使用Inherited Resources,编辑操作是隐式的.

使用已与之关联的服务编辑@store时,后者的复选框不会显示为已选中.

Formtastic的README警告它不正式支持MongoMapper,但它也说人们已经成功地使用了两者,我在网上看到了一些这样的例子.

我怀疑Inherited Resources也不支持它,我从Devise + Simple Form看到的,都来自同一作者,不支持MM.他们正努力在他们的宝石中使用ORM适配器,但尚未准备好AFAIK.

我已经遇到了问题,我正在重写更新操作以使其工作:

  def update
    store = Store.find(params[:id])    
    if …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails formtastic mongomapper inherited-resources

1
推荐指数
1
解决办法
1812
查看次数