我搜索并尝试了很多,但我无法按照我的意愿完成它.所以这是我的问题.
我的模特是:
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)
我的问题是,当我编辑一个人时,它会向我显示配置文件中的数据.我想,即使在创建用户时,也会显示配置文件中的字段.
非常感谢!
我跟随模特:
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实现通用媒体库.我选择ActiveAdmin来处理我的任务的管理部分,到目前为止它运行良好,除了一件事:它没有按预期显示"选择文件"对话框.
这是ActiveAdmin的"媒体"部分的表单.我有一个名为"Medium"的模型,其中包含以下字段(除了id和timestamp:
asset_file_nameasset_file_sizeasset_content_typeasset_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中的所有内容.
谢谢!
我正在使用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) 我正在使用 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) 更新:所以,我发现了这一点,显然这就是为什么这种旧的做事方式不起作用,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) 我正在尝试使用以下代码在新页面中使用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="✓" />
<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) 我正在尝试使用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) 由于多种技术原因,我不得不将我一直使用的 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)
我知道我可能必须在某个地方包含一个帮助程序才能呈现选项卡,但我不确定要使用哪个帮助程序以及在哪里包含它。
使用以下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) formtastic ×10
activeadmin ×5
paperclip ×2
ruby ×2
associations ×1
country ×1
html ×1
mongomapper ×1