我有一个模型Task,其范围名为done. ATask属于 aProject且属于 a User。
我需要按用户已完成的项目来过滤用户task。
simple_form_for @q do |form|
form.input :tasks_done_project_id, collection: Project.ordered
Run Code Online (Sandbox Code Playgroud)
但使用“_done”不起作用。
我想到了一个掠夺者:
ransacker :done do |parent|
parent.done.table[:id]
end
Run Code Online (Sandbox Code Playgroud)
但也不起作用。任何想法?
我们有这样的形式:
<%= simple_form_for(@venue, url: url, method: method) do |f| %>
<%= render "shared/errors", object: venue%>
<div class="row">
<div class="col-md-12">
<div class="form-group label-floating">
<%= f.association :partner, input_html: { class: "form-control", value: partner.try(:id) }, label_html: { class: 'control-label' } %>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group label-floating">
<%= f.input :name, input_html: { class: "form-control" }, label_html: { class: 'control-label' } %>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="form-group label-floating">
<%= f.input :description, required: true,label: 'About', input_html: { …Run Code Online (Sandbox Code Playgroud) 在我的表格中,我有:
<%= f.association :virksomhed, :collection => Virksomhed.all(:order => 'navn'), :prompt => "Vælg virksomhed" %>
Run Code Online (Sandbox Code Playgroud)
在视图中我有这个:

我代替我想要显示公司名称(导航丹麦语)的对象.
我写了*simple_form*输入扩展名,位于app/inputs/something_input.rb中
我正在尝试为此编写RSpec.当我把这个规范放在spec/helpers/application_helper_spec.rb中时,一切正常,没有任何问题.
# spec/helpers/application_helper_spec.rb
require 'spec_helper'
describe ApplicationHelper do
it do
helper.simple_form_for @foo,:method=>'get', :url=>helper.users_path do |f|
f.input :created_at, :as =>:custom_datepicker
end.should =~ /something/
end
end
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试将该规范移动到spec/inputs/something_input_spec.rb,因此它将是类似的名称路径.
# spec/imputs/something_input_spec.rb
require 'spec_helper'
describe SomethingInput do
it do
helper.simple_form_for @foo,:method=>'get', :url=>helper.users_path do |f|
f.input :created_at, :as =>:custom_datepicker
end.should =~ /something/
end
end
#
#ERROR: undefined local variable or method `helper' for #<RSpec::Core::ExampleGroup
Run Code Online (Sandbox Code Playgroud)
我想告诉RSpec威胁这个文件作为类型帮助规范,所以我将使用所有RSpec :: Rails :: HelperExampleGroup功能的辅助方法
... 我怎样才能做到这一点 ??
我试图用RSpec …
我正在创建一个自定义的SimpleForm输入.它利用javascript模式弹出窗口来选择值.
如果我在表单视图中包含模态部分,我基本上可以使它工作,但我希望自定义输入将部分推送到模板.
但是,我无法让它发挥作用.我正在尝试这个,但它没有正确地呈现部分.
class ProductCategoryImageSelectInput < SimpleForm::Inputs::CollectionSelectInput
def input
html = ''
html << '<a href="#myModal" role="button" data-toggle="modal">Launch demo modal</a>'
File.open("#{Rails.root}/app/views/product_categories/_browse_modal.html.erb", 'r') do |f|
html << f.read
end
end
end
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
编辑
我显然对于发布屏幕截图的用户来说太新了,但这里是功能差异的链接:
当我在表单中嵌入模态代码时,我得到了这个,这是所需的功能: 工作
当我尝试将模态代码放在自定义输入中时,我得到了这个: 不工作
我有以下(和工作)动态菜单/下拉列表,它允许您选择属性类型,然后选择具有常规rails形式的属性子类型:
properties.js.coffee
jQuery ->
prop_sub_types = $('#property_prop_sub_type_id').html()
$('#property_prop_type_id').change ->
prop_type = $('#property_prop_type_id :selected').text()
escaped_prop_type = prop_type.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g, '\\$1')
options = $(prop_sub_types).filter("optgroup[label='#{escaped_prop_type}']").html()
if options
$('#property_prop_sub_type_id').html(options)
else
$('#property_prop_sub_type_id').empty()
Run Code Online (Sandbox Code Playgroud)
_form.html.erb
<%= form_for(@property) do |f| %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :prop_type_id, 'Property Type' %><br />
<%= f.collection_select :prop_type_id, PropType.order(:name), :id, :name, :prompt => "-- Select Property Type --" %>
</div>
<div class="field">
<%= f.label :prop_sub_type_id, 'Property Subtype' %><br />
<%= f.grouped_collection_select :prop_sub_type_id, …Run Code Online (Sandbox Code Playgroud) ruby-on-rails associations simple-form drop-down-menu bootstrap-sass
我在显示与simpleform的多对多关联时遇到问题.
我有一个Shop模型,Product模型和ShopProduct模型,它们将它们连接在一起.所以`shop - shopproduct - product如果我以我的形式使用:
<%= f.association :shop_products, as: :check_boxes%>
Run Code Online (Sandbox Code Playgroud)
我得到这个代码
<input checked="checked" class="check_boxes optional" id="shop_shop_product_ids_2"
name="shop[shop_product_ids][]" type="checkbox" value="2">
#<ShopProduct:0x007f59d47b6be8></label>
Run Code Online (Sandbox Code Playgroud)
如果我使用 label_method: :product_name我得到一个错误
undefined methodproduct_name'为#<_ ShopProduct:0x007f59d474dff8>
在这种情况下如何显示正常信息?
随着Bootstrap的最新更改,我想将常见的css类input_html: {class: 'form-control'}应用于所有元素,但不需要手动为所有元素执行.有没有办法默认设置它.我还没有找到任何设置.
在我的模型中,我有以下验证器:
validates :terms, acceptance: true, on: :create, allow_nil: false
attr_accessor :terms
Run Code Online (Sandbox Code Playgroud)
在我的形式我有:
= simple_form_for @reservation do |f|
= f.error_notification
= f.input :terms, as: :boolean
Run Code Online (Sandbox Code Playgroud)
问题是,当用户不接受不显示任何错误的条款时,为什么?
我使用simple_form(https://github.com/plataformatec/simple_form)库来使用Rails 4.2.5进行文件上载.我想禁止文件上传,除非使用simple_form在表单中存在文件,但不知道如何执行此操作.我的代码如下:
<%= simple_form_for @business, html: { multipart: true } do |f| %>
<%= f.simple_fields_for :attached_files, AttachedFile.new do |af| %>
<%= af.input :file, as: :file, label: false %>
<% end %>
<%= f.button :submit,
'Upload File',
class: 'btn btn-mini btn-success hidden',
id: 'submit-file-upload' %>
<% end %>
Run Code Online (Sandbox Code Playgroud) simple-form ×10
ruby ×4
associations ×1
many-to-many ×1
ransack ×1
rspec ×1
rspec-rails ×1
rspec2 ×1
sql ×1