在HAML中以表格形式标记当前所选期权值的最快捷,最优雅的方法是什么?
%form{:action => '', :method => 'get'}
%select{:name => 'param_name'}
%option{:value => 'A'} A data
%option{:value => 'B'} B data
Run Code Online (Sandbox Code Playgroud)
单程:
- if params[:param_name] == "A"
%option{:value => 'A', :selected => 'selected'} A data
- else
%option{:value => 'A'} A data
Run Code Online (Sandbox Code Playgroud)
但是当select盒子有很多选项字段时,这是不合适的...
我正在使用的rails应用程序中有以下非常难看的ruby代码:
if params.present?
if params[:search].present?
if params[:search][:tags_name_in].present?
...
end
end
end
Run Code Online (Sandbox Code Playgroud)
所有我想问的是是否已经定义了params [:search] [:tags_name_in],但因为params,params [:search]和params [:search] [:tags_name_in]可能都是零,如果我使用...
if params[:search][:tags_name_in].present?
Run Code Online (Sandbox Code Playgroud)
...如果没有参数或没有搜索参数,我会收到错误.
肯定有一个更好的方法来做到这一点......建议?
所以我熟悉正则表达式的基础知识,但我正在寻找好的教程来学习除基础知识以外的任何东西.我也很感激任何链接到交互式问题,我可以输入正则表达式,看看他们是否解决了它.即使是我可以尝试通过自己的编码解决的中间或高级问题的想法也会很棒.
我从Cloudmailin收集Rails电子邮件时收到以下PGError:
PGError: ERROR: invalid byte sequence for encoding "UTF8": 0xbb HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding". : INSERT INTO "comments" ("content") VALUES ('Reply with blah blah ????????????????????????????????????????????????????? .....
Run Code Online (Sandbox Code Playgroud)
所以很明显我有一些无效的UTF8字符进入电子邮件吧?所以我试着清理它,但仍有一些东西在偷偷摸摸.这是我到目前为止所拥有的:
message_all_clean = params[:message]
Iconv.conv('UTF-8//IGNORE', 'UTF-8', message_all_clean)
message_plain_clean = params[:plain]
Iconv.conv('UTF-8//IGNORE', 'UTF-8', message_plain_clean)
@incoming_mail = IncomingMail.create(:message_all => Base64.encode64(message_all_clean), :message_plain => Base64.encode64(message_plain_clean))
Run Code Online (Sandbox Code Playgroud)
任何想法,想法或建议?谢谢
我通过users表拥有父/子关系,模型如下:
class User < ActiveRecord::Base
# Parents relationship
has_many :children_parents, :class_name => "ParentsChild", :foreign_key => "child_id", :dependent => :destroy
has_many :parents, :through => :children_parents
# Children relatiopnship
has_many :parents_children, :class_name => "ParentsChild", :foreign_key => "parent_id", :dependent => :destroy
has_many :children, :through => :parents_children
...
end
Run Code Online (Sandbox Code Playgroud)
在parents_child.rb中:
class ParentsChild < ActiveRecord::Base
belongs_to :parent, :class_name => "User"
belongs_to :child, :class_name => "User"
end
Run Code Online (Sandbox Code Playgroud)
现在,我们的"添加子项"表单(仅使用vanilla嵌套属性)可以为父项多次添加同一个用户.我不确定在ParentsChild关系中强制实现唯一性的"正确"方法是什么,尽管我倾向于(parent_id, child_id)在数据库层使用唯一索引(当然使用迁移).
我确信我还可以在UsersController :: update方法中强制执行唯一性约束,但是更愿意避免更改该代码(现在它完全不引用父/子,这要归功于表单/模型中的嵌套属性)可能.我最关心的是确保我们使用"正确"的解决方案.什么是'正确'或'轨道'的方式来做到这一点?
activerecord ×1
encoding ×1
forms ×1
haml ×1
hash ×1
heroku ×1
if-statement ×1
null ×1
option ×1
postgresql ×1
regex ×1
ruby ×1
select ×1
unique ×1