我正在使用formtastic,一切都很好,但奇怪的是 - 在
= form.input :birthdate, :as => :date
Run Code Online (Sandbox Code Playgroud)
它呈现出类似的东西
<li><label for="profile_birthdate_2i">Month</label><select
id="profile_birthdate_2i" name="profile[birthdate(2i)]">
<option value="1">114</option>
<option value="2">97</option>
<option value="3">110</option>
<option value="4">115</option>
<option value="5">108</option>
<option value="6">97</option>
<option value="7">116</option>
<option value="8">105</option>
<option value="9">111</option>
<option value="10">110</option>
<option value="11">32</option>
<option value="12">109</option>
</select>
Run Code Online (Sandbox Code Playgroud)
但如果我在semantic_form中使用类似的东西
= form.datetime_select :birthdate
Run Code Online (Sandbox Code Playgroud)
它呈现正确.我发现信息,它可能是由月份名称没有翻译的语言环境文件引起的,但它很奇怪 - 为什么铁路助手使月份名称好,但是formtastic - 不是:(
有任何想法吗?
f.input :some_model_values, :as => :select
Run Code Online (Sandbox Code Playgroud)
使用Formtastic,我需要为我的选择输入设置选项的文本,但不会填充:some_model_values.
第二个:如何收集:some_model_values预先修改?因为我不想根据用户角色显示一些选项.
谢谢!
有没有快速的方法为embeds_many-embedded_in关系制作表单?我有以下内容:
class Team
include Mongoid::Document
field :name, :type => String
embeds_many :players
end
class Player
include Mongoid::Document
embedded_in :team, :inverse_of => :players
field :name, :type => String
end
Run Code Online (Sandbox Code Playgroud)
我想为团队创建一个表格,为玩家提供嵌入式编辑.在那里看到https://github.com/bowsersenior/formtastic_with_mongoid_tutorial但"TODO".
这个宝石看起来好得令人难以置信.这就像最终的节省时间.
在我承诺使用它之前,你们是否遇到了我应该注意的任何问题或限制?
性能如何?对你的模型进行如此多的反思似乎有点可怕,尽管我承认它节省了这么多时间;)
我很好奇,如果在我提前充电之前使用它可能导致任何问题.
我有一个简单的Formtastic表单,嵌套模型如下.
<%= semantic_form_for @event do |form| %>
<%= form.input :user_id , :as => :hidden, :value => @user.id %>
<%= form.input :title %>
<%= form.input :invitations, :as => :check_boxes, :collection => Group.find(:all, :order => "name ASC"), :for => :invitations, :name => "Invitation", :include_blank => false %>
<%= form.buttons %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
不知何故,Formtastic将我的输入放入无序列表中,如下所示:

我想知道如何更改设置以解决此问题.
此外,对于复选框,Formtastic会自动添加一个nill选项:
Parameters: {"utf8"=>"?", "authenticity_token"=>"XXX", "event"=>{"title"=>"test 15", "type"=>"", "invitation_ids"=>["", "2", "1"]}, "commit"=>"Create Event"}
Run Code Online (Sandbox Code Playgroud)
我该怎么解决这个问题?
谢谢.
是否可以从表单生成器text_field获取,只有它的值?例如:
<% f.text_field :name %>
Run Code Online (Sandbox Code Playgroud)
产生:
<input type="text" value="ddd" size="30" name="girl[name]" id="girl_name">
Run Code Online (Sandbox Code Playgroud)
我如何获取值"ddd"?
一种方法是存储生成的html并使用正则表达式获取我想要的内容.另一种方法是创建一个自定义表单生成器(就像Ryan在railscasts第311集中所做的那样),但我发现这两种解决方案都有点极端,不是吗?还有其他更简单的解决方案吗?
我真正的问题是我需要在fields_for中获取a:photo的值并将其添加到image_tag中,以便我可以使用构建器的循环显示图像.
我有这个模型属性:
class CreateRoles < ActiveRecord::Migration
# create role model with relation to users and projects
def change
create_table :roles do |t|
t.references :user
t.references :project
t.boolean :senior_author , :default => 0
t.boolean :first_author , :default => 0
t.boolean :author , :default => 0
t.boolean :bio_informatician, :default => 0
end
end
end
Run Code Online (Sandbox Code Playgroud)
我的表格是:
form do |f|
f.inputs "Details" do # Project's fields
f.input :title
f.input :code
end
f.has_many :roles do |app_f|
app_f.inputs do
if !app_f.object.nil?
app_f.input :_destroy, :as => :boolean, :label …Run Code Online (Sandbox Code Playgroud) 我试图确保我的rails应用程序的用户无法通过双击多次提交我的formtastic表单.
请参阅下面的代码.
不幸的是,在向提交按钮添加:onclick参数后,表单不再处理.按钮名称简单更改为禁用按钮'正在处理...'(正如提交期间所预期的那样),但此状态是永久性的(没有数据验证和重定向).
我没有看到如何调试这个 - 有人可以帮忙吗?
= semantic_form_for @case, :html => {:class => "form-stacked"} do |f|
= f.inputs :name => "Case" do
= f.input :summary, :input_html => {:class => 'xxlarge main_case'}
= f.buttons do
= f.commit_button "Create Case", :button_html => {:class => "btn primary", :onclick => "this.disabled=true; this.value='Processing...';"}
Run Code Online (Sandbox Code Playgroud) = form.input :success, label: false
Run Code Online (Sandbox Code Playgroud)
上面的代码应该隐藏标签,但它没有。任何想法为什么它仍然显示标签?
我希望能够使用Active_admin中的formtastic删除编辑表单中的图像.有很多关于此的帖子,但由于某些原因我似乎无法使其符合我的设置.
我有一个Post模型和一个NewsImages模型,其中包含每个帖子的图像:
class Post < ActiveRecord::Base
has_many :news_images, dependent: :destroy
accepts_nested_attributes_for :news_images, allow_destroy: true
end
class NewsImage < ActiveRecord::Base
belongs_to :post
has_attached_file :photo
end
Run Code Online (Sandbox Code Playgroud)
因此,根据我所读的内容,可以将一个标志添加到我的NewsImage模型中,并使用之前的保存方法来删除该图像.我设想它看起来像这样,但单击复选框时不会删除图像.
#/admin/post.rb
f.has_many :news_images do |p|
if p.object.new_record?
p.input :photo, as: :file
else
p.input :photo, as: :file, :hint => p.template.image_tag(p.object.photo.url(:thumb))
p.input :remove_image, as: :boolean, required: :false, label: 'Remove image'
end
end
Run Code Online (Sandbox Code Playgroud)
在此阶段我在控制台中注意到的一点是,当单击进出复选框时,它的值不会更改为选中或取消选中; 应该是吗?
NewsImage模型现在看起来像
class NewsImage < ActiveRecord::Base
before_save :remove_photo
belongs_to :post
private
def remove_photo
self.photo.destroy if self.remove_image == '1'
end
end …Run Code Online (Sandbox Code Playgroud) 在模型中Code有一个名称week_days可能是这样的字段1100110.我希望在ActiveAdmin表单中显示7个复选框,而不是经典输入字段
form do |f|
f.inputs do
f.input :name
f.input :week_days
end
f.actions
end
Run Code Online (Sandbox Code Playgroud)
所以我想在模型中写一个这样的映射器
def week_days_checkboxes
[
['sunday', 1],
['monday', 1],
['tuesday', 1],
['wednesday', 1],
['thursday', 1],
['friday', 1],
['saturday', 1]
]
end
def week_days_checkboxes=(week_days_checkboxes)
@week_days = week_days_checkboxes.reverse.join.to_i(2)
end
Run Code Online (Sandbox Code Playgroud)
然后以这种方式更改表单输入
f.input :week_days_checkboxes, as: :check_boxes
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我需要做什么?
PS:根据字段的每个值,每对的第二个值应为1或0 week_days
非常感谢
在我的申请ActiveAdmin,我有一个Country具有一个整数属性模型schedule与从有限范围的值0来4.
在new和edit动作表单中,我想从下拉框中选择一个字符串并将其映射到相应的整数值,而不是直接输入整数值本身.
我怎么能用Formtasticgem语法呢?
formtastic ×12
ruby-on-rails ×11
ruby ×5
activeadmin ×4
forms ×2
haml ×1
mongoid ×1
onclick ×1
paperclip ×1
performance ×1