这应该很简单,但似乎不在Rails ......
我们需要从不超过200个字符的用户收集文本输入.
如果我们使用text_field,并将:maxlength设置为200,我们似乎只有两个同样的UGLY选择:(a)使用以下方式使字段变宽:使用大小不适合典型用户的屏幕或(b)用户在打字时必须水平滚动.从UI的角度来看,这两种方法都很糟糕.
我们当然希望使用text_area,让它自动将输入限制为200 ......但是text_area当然没有限制.
我们当然不想等到他们提交数据告诉他们"太长"或更糟糕的是简单截断他们的数据.
有什么好主意吗?我们怎么有一个输入框说100个字符宽和3行高,不会让用户输入超过200个字符?
是否有一些UI增强框架可以处理这种UI问题?是否添加了一个javascript计数器,我们只将其应用于某些输入字段?
如何使用HAML模板从呈现对象ID中阻止视图中的部分表单?例如,my show.html.hamlfor Users包含=render 'shortlists'其候选名单列表:
%p
Shortlists:
= @shortlists.each do |s|
= render :partial => 'shortlists', :locals => { :s => s }
%p
Run Code Online (Sandbox Code Playgroud)
我在屏幕上看到的是:
Shortlists:
Shortlist A has 0 items
Shortlist B has 5 items
"#<Shortlist:0xa95fa38>#<Shortlist:0xa95f54c>"
Run Code Online (Sandbox Code Playgroud)
我该如何预防?
"#<Shortlist:0xa95fa38>#<Shortlist:0xa95f54c>"
Run Code Online (Sandbox Code Playgroud)
从渲染?
我决定开始使用HAML来加速开发,所以,我决定重命名我的视图:
new.html.erb到new.html.haml但是,似乎没有轨道更多的将它连接到控制器,下面是完整的错误信息:
缺少模板测验/ new,application/new with {:handlers => [:erb,:builder,:coffee],:formats => [:html],:locale => [:en,:en]}.搜索:*"C:/ Users/Sam/RubymineProjects/hope/app/views"*"D:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/kaminari-0.12.4/app/views"*"D:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/devise-1.4.8/app/views"
这是新动作:
def new
@quiz = Quiz.new
respond_to do |format|
format.html # new.html.erb
# format.json { render json: @quiz }
end
end
Run Code Online (Sandbox Code Playgroud)
那么,我该怎么办?
我如何使用HAML编写以下内容?
if @students.each do |student|
# render a student
end.empty?
# @students was empty
end
Run Code Online (Sandbox Code Playgroud) 到目前为止我得到了什么:
= button_to 'Delete', "/blog/#{@post.id}", method: 'delete', class: 'btn btn-danger'
Run Code Online (Sandbox Code Playgroud)
但是添加 aconfirm: 'Are you sure'没有效果。而且那条线非常难看,我想缩短它。
当jQuery生成新字段时,新字段不能与'enter'一起使用.
这是我的脚本:
咖啡
$('.teaser-form').keyup (e) ->
if e.keyCode == 13
$('.add-new-list').click()
Run Code Online (Sandbox Code Playgroud)
form.haml
= f.simple_fields_for :products do |p|
= render 'product_fields', :f => p
.gear-item-add
= link_to_add_association 'add item', f, :gears, class: "btn btn-default add-new-list"
Run Code Online (Sandbox Code Playgroud)
所以jQuery调用link_to_add_association按钮创建下面显示的字段.(第一个字段是初始字段,所以如果按下回车键,则会产生第二个字段和第三个字段...但如果我尝试继续第三个字段并按Enter键,则不会发生任何事情)
_product_field.haml
.nested-fields.gear-patrol
.col-md-12
= f.text_field :list, class: 'teaser-form form-control', placeholder: 'testing'
Run Code Online (Sandbox Code Playgroud)
我正在编写电子邮件视图,这在使用嵌套表时尤其令人讨厌.我的电子邮件的许多部分中的每一部分都需要围绕它的相同讨厌的东西:
%table.centered
%tbody
%tr
%td
%table.one-col{"emb-background-style" => ""}
%tbody
%tr
%td.column
%div
.column-top
%table.contents
%tbody
%tr
%td.padded
COPY COPY COPY ETC.
Run Code Online (Sandbox Code Playgroud)
每个部分的内容都是大量的副本和链接以及诸如此类的内容,并将其放入ruby字符串或从单独的文件中呈现它将很难遵循.这是我想要模糊的瑕疵,而不是部分内容.
那么,有没有办法以某种方式连接残骸,使HAML减少缩进和苛刻?
所以,我有一个轨道部分(汽车的图像),我想放在两个箭头之间("<"和">").
这是我的haml:
.col-sm-12
<
= render partial: 'vehicle_image', locals: { quotation_request: quotation_request }
>
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是我无法将两个箭头显示在与图像相同的行上.关于如何解决这个问题的任何想法?
在将旧版 Rails 应用程序升级到最新、最好的版本时,我发现haml_tag版本 6 中的 Haml::Helpers 中删除了辅助方法。对 haml 和 haml-rails 源代码的快速 grep 显示,没有对它的引用(除了指出其删除的变更日志之外)。
haml_tag 允许您生成具有任意标签名称、属性和内容的输出,如下所示:
- tag_name = my_content_model.tag_name || "section" # something dynamic
- haml_tag(tag_name, {attr: value, attr2: value2}) do
%div.inner
%h2 Contents go here.
Run Code Online (Sandbox Code Playgroud)
我在 CMS 中大量使用 haml_tag,用户可以为其内容块选择标签名称,并且不想重新设计该功能。是否有足够的替代品,也许在第三方库中?
(现在我的 Gemfile 将 HAML 锁定到版本 5)
我有这个代码:
= link_to main_app.dashboard_path(current_user), :class => 'class1 #{ is_active_link?("dashboard") }' do
%p
Dashboard
Run Code Online (Sandbox Code Playgroud)
Ya和is_active_link?没有被执行.为什么?它只是解释为普通字符串!
有谁知道如何在纯HAML中写下以下内容?请注意,我想显示两个完全相邻的选择框,旁边是一个按钮,中间没有任何空格:
<%= f.select :state, State.all.order(:name).map {|s| [s.name, s.id]} -%>
<%= f.select :subject, Subject.all.order(:name).map {|s| [s.name, s.id]} -%>
<%= f.button "Search", class: "input-lg" -%>
Run Code Online (Sandbox Code Playgroud)
编辑包含在以下内容中:
= form_for @tutors_search_form, url: "/tutors/search", method: :get do |f|
.container
.row.text-center
:erb
<%= f.text_field :subject, class: "input-lg input-no-border-radius", placeholder: "What Subject do you want to learn?", required: true, id: 'home-page-search-bar-subject-input' -%>
<%= f.text_field :state, class: "input-lg input-no-border-radius", placeholder: "Which State are you in?", required: true, id: 'home-page-search-bar-state-input' -%>
<%= f.button "Search", class: "btn btn-primary-wouaou btn-lg …Run Code Online (Sandbox Code Playgroud) - if current_user
= link_to "Edit", edit_job_path(@job), class: "btn btn-sm btn-default"
= link_to "Delete", job_path(@job), method: :delete, data: { confirm: "Are you sure?" }, class: "btn btn-sm btn-default"
- else
= link_to "Back", root_path, class: "btn btn-sm btn-default"
Run Code Online (Sandbox Code Playgroud)
返回:
Got "else" with no preceding "if" error ruby
Run Code Online (Sandbox Code Playgroud)
这是为什么?
haml ×13
ruby-on-rails ×10
ruby ×5
erb ×2
html ×2
css ×1
dry ×1
javascript ×1
jquery ×1
user-input ×1