现在使用Formtastic我可以选择:
= f.input :category, :as => :select, :include_blank => false, :collection => subcategories
Run Code Online (Sandbox Code Playgroud)
这里我只展示儿童类别.我使用acts_as_tree插件进行父子关系.我想展示父类别.
Formtastic生成的选择应该如下所示:
<select name="favoritefood">
<optgroup label="Dairy products">
<option>Cheese</option>
<option>Egg</option>
</optgroup>
<optgroup label="Vegetables">
<option>Cabbage</option>
<option>Lettuce</option>
<option>Beans</option>
<option>Onions</option>
<option>Courgettes</option>
</optgroup>
?
</select>
Run Code Online (Sandbox Code Playgroud)
如何在Formtastic中使用分组选择具有acts_as_tree功能的模型?有人知道吗?
更新
我发现这应该有效:
= f.input :category, :include_blank => false, :group_by => :parent
Run Code Online (Sandbox Code Playgroud)
但它没有错误:
undefined local variable or method `object_class' for #<Formtastic::SemanticFormBuilder:0x87d3158>
Run Code Online (Sandbox Code Playgroud)
看起来Formtastic中有一些错误.我查看了formtastic.rb并在detect_group_association方法中找到了object_class :
def detect_group_association(method, group_by)
object_to_method_reflection = self.reflection_for(method)
method_class = object_to_method_reflection.klass
method_to_group_association = method_class.reflect_on_association(group_by)
group_class = method_to_group_association.klass
# This will …Run Code Online (Sandbox Code Playgroud) 我对表格有疑问.我有一个相当标准的表单,用标题和正文保存一个帖子(在我的应用程序中称为eReport).该表还有一个"已发布"字段,它是布尔值.保存的eReport仅在公共站点上显示此字段是否设置为true,false为默认值.
我希望在表单末尾显示两个按钮,而不是默认复选框:"立即发布"按钮和"另存为草稿"按钮.如果用户按下前者,则已发布的字段将设置为true.如果是后者,则假.在PHP中,我曾经显示2个具有不同名称值的提交字段,然后使用if/else语句处理输入以确定要构建的正确SQL查询.在Rails中,我假设我会在适当的操作下将此逻辑放在控制器中,但我不确定如何操作按钮的名称或id值.
为了记录,我正在使用Formtastic,但如果有人可以告诉我如何使用默认的Rails表单标签执行此操作,那也没关系.这是我现在的表格的代码:
<% semantic_form_for @ereport do |form| %>
<% form.inputs do %>
<%= form.input :title %>
<%= form.input :body %>
<% end %>
<% form.buttons do %>
<%= form.commit_button :label => "Publish Now" %>
<%= form.commit_button :label => "Save as Draft" %>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助!
在Formtastic文档中,它讨论了为基本错误添加一行:
<%= semantic_form_for @record do |form| %>
<%= form.semantic_errors :base %>
...main body of form...
<% end %>
Run Code Online (Sandbox Code Playgroud)
令我困惑的是,Formtastic将包括对特定领域错误的毫不费力的支持,但默认情况下,它没有提供这样的调整base.1)你知道这是什么原因吗?
2)在我的情况下,我希望我的所有表单在表单开始后立即包含基本错误.对于所有表格,我有没有办法通过'默认'来形成这种形式?
我有一个表User继承自一个名为的表Person
长话短说,而不是必须做以下事情:
f.inputs 'Something' do
f.inputs for: :person do |f|
f.input :name
f.input :surname
end
f.input :account
end
Run Code Online (Sandbox Code Playgroud)
这会产生一个fieldset内部ol,这本身就是无效的,但这不是让我担心的问题.我想摆脱fieldset所有属性显示在同一级别.
f.inputs 'Something' do
f.input :name, for: :person
f.input :surname, for: :person
f.input :account
end
Run Code Online (Sandbox Code Playgroud)
当然这是无效的,在输入中没有for:for.
我正在考虑使用委托,但后来我虽然accepts_nested_attributes_for在Person模型中也有很多,但它们会破坏.
该Person表也被另一个模型继承.
有没有透明化的宝石,让我继承模型?
我正在使用simple_form和以下代码来创建按钮.
<%= form.action :submit, :value => "submit", :button_html => { :class => "lagoon" } %>
Run Code Online (Sandbox Code Playgroud)
但是按钮(仍然)标记为"创建用户"而不是"提交".我认为设置值=>会这样做,但事实并非如此
我想通过Activeadmin的formtastic制作动态选择选项,如下所示:
form do |f|
f.inputs "Exam Registration Details" do
f.input :user_id, :as => :select, :collection => User.where(:admin => 'false')
#selects user from list. WORKING
f.input :student_id, :as => :select, :collection => Student.joins(lessons: :user)
#collection of students will change to students who have lessons with chosen user. NOT WORKING, returns all students who have lessons.
f.input :lesson_id, :as => :select, :collection => Lesson.joins(:student, :user)
#collection of lessons will change to reflect lessons connected by chosen user and student. NOT …Run Code Online (Sandbox Code Playgroud) 我正在创建一个Ryan Bates描述的风格的多部分表单:
http://railscasts.com/episodes/217-multistep-forms
http://asciicasts.com/episodes/217-multistep-forms(基于文本的版本)
总而言之,我有一个视图(每个表单步骤都有一堆部分),当用户单击下一个按钮并显示表单的不同部分时,表单变量存储在会话中.
我的一个表单步骤允许用户通过Paperclip gem上传多个图像.问题在于Rails正在尝试将图像数据上传到会话,而会话返回TypeError"无法转储文件".
有什么好办法可以解决这个问题?
更新:我已经尝试了一堆宝石(巫师,acts_as_wizard和其他一些小宝石),但它们似乎都不适用于Rails 3.
我也试过将数据存储在一个数组中,直到表单完成,但这导致我的控制器变得庞大而混乱.
在我的Rails 3应用程序中,我使用Twitter Bootstrap作为开发内部项目管理系统的框架工作.我正在使用Formtastic来帮助我使用表单,因为它节省了大量的时间和代码.我的问题是让Formtastic代码以与Bootstrap约定相对应的方式输出表单.我已经阅读了一些我在Google上发现的项目,建议我应该修补Formtastic,但我无法成功完成.
如何自定义Formtastic的输出以在每个字段周围使用div,以便我可以使用Bootstrap?
谢谢你的期待.
好的..我是ruby/rails的新手.所以为了弥补我的弱点,我的公司有一个人来帮我创建我们网站的骨头.他输入了formtastic:label_method,因此我们可以更改DDLB中显示的字段.当我将项目移动到新框时,我收到此错误.
:label_method不再可用
我想知道的是......我在它的地方使用了什么?
我有一个简单的应用程序,它有三个模型Assessment,Question以及AssessmentQuestion
在Assessment我有这样的协会,
class Assessment < ActiveRecord::Base
has_many :assessment_questions, dependent: :destroy
has_many :questions, through: :assessment_questions
end
Run Code Online (Sandbox Code Playgroud)
在Question我有,
class Question < ActiveRecord::Base
has_many :assessment_questions, dependent: :destroy
has_many :bank_questions, dependent: :destroy
end
Run Code Online (Sandbox Code Playgroud)
在AssessmentQuestion我有,
class AssessmentQuestion < ActiveRecord::Base
belongs_to :question
belongs_to :assessment
end
Run Code Online (Sandbox Code Playgroud)
评估问题表有:assessment_id,:question_id和:mark列
我有使用ActiveAdmingem 的管理界面。
在管理界面中创建评估时,在 admin/assessment.rb 我有一个由 formtastic gem 生成的表单,
form do |f|
f.inputs do
f.input :name
f.input :duration
f.input :questions, as: :check_boxes, …Run Code Online (Sandbox Code Playgroud) formtastic ×10
forms ×3
activeadmin ×2
acts-as-tree ×1
combobox ×1
form-submit ×1
grouping ×1
inheritance ×1
labels ×1
nested ×1
optgroup ×1
paperclip ×1
polymorphism ×1
railscasts ×1