我有一个Message.uuid字段,我想添加验证,其中包括:
支持的:
rails为这些规则编写模型验证的最佳方法是什么?
谢谢
更新:
validates :uuid,
:length => { :within => 5..500 },
:format => { :with => /[A-Za-z\d][-A-Za-z\d]{3,498}[A-Za-z\d]/ }
Run Code Online (Sandbox Code Playgroud)
使用有效的UUID,这是失败的
我有一个rails 3.0.10项目我正在使用rails_admin gem构建一些基本的管理功能.对于在rails_admin中管理的其中一个模型,我希望能够基于current_user设置用户关联.我认为这应该是一个相当普遍的要求,所以我确信我错过了一些明显的东西.
我确实发现了一个似乎可以解决这个问题的帖子,但它对我不起作用.所以我希望那里的其他人可能有另一个建议.
这是我能够找到的对话:http://groups.google.com/group/rails_admin/browse_thread/thread/ce0e22aeec1f72b7
我偏爱 _new_user_form.html.erb
<%= form_for(@user, :remote => true, :html => {:id => 'new_user_form'}) do |f|%>
<strong><%= :form_text %></strong>
<%= f.text_field :email, :placeholder => get_placeholder_text(@board), :size => "30" %>
<%= hidden_field_tag :role, role %>
<%=f.submit "SAVE", :class => "button-small" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
在show.rb中我想使用它并传递一些部分变量,如下所示:
<%= render 'users/new_user_form', :locals=> {:role => "Celebrant" } %>
Run Code Online (Sandbox Code Playgroud)
但是我收到此错误:
undefined local variable or method `role' for #<#<Class:0x00000103d5e8b0>:0x00000103d5b930>
Run Code Online (Sandbox Code Playgroud)
我阅读了关于传入当地人的文件,这似乎是正确的.我究竟做错了什么?
我希望它类似于Twitter处理其推文的URL的方式.
例如,现在我的URL看起来像这样:mydomain.com/feedbacks/1/,feedbacks控制器的名称在哪里.
我希望它看起来像:mydomain.com/username/feedbacks/1/类似于Twitter的:twitter.com/username/status/:id/.
我routes.rb看起来像这样:
resources :users do
resources :feedbacks
end
Run Code Online (Sandbox Code Playgroud)
当我这样的时候,它会给我URL mydomain.com/users/1/feedbacks,但我想要URL中的实际用户名.
我怎么做到的?
谢谢.
编辑1:如果您要为此问题添加另一个答案,请确保它针对已给出的答案解决我的意见/问题.否则它将是多余的.
我正在使用Ruby on Rails 3.0.10,我想检索scheme://domain通用URL 的一部分(注意:URL语法也可以scheme://domain:port/path?query_string#fragment_id).
也就是说,例如,如果我有以下网址
http://stackoverflow.com/questions/7304043/how-to-retrieve-the-scheme-domainport-part-of-a-generic-url
ftp://some_link.org/some_other_string
# Consider also 'https', 'ftps' and so on... 'scheme:' values.
Run Code Online (Sandbox Code Playgroud)
我想只检索
# Note: The last '/' character was removed.
http://stackoverflow.com
ftp://some_link.org
# Consider also 'https', 'ftps' and so on... 'scheme:' values.
Run Code Online (Sandbox Code Playgroud)
部分.我怎样才能做到这一点?
我有一个基于订阅的应用程序,根据添加的用户数收费.
我想将用户限制为单个会话.
如何实现它.我正在使用设计进行身份验证.
谢谢..
def can_save(board,role)
if ar_user = already_registered?(email) || user = self.save
Participant.make(ar_user||user, board, role)
end
user
end
Run Code Online (Sandbox Code Playgroud)
我对它做了这个rspec测试:
it "should return the user if the user is not already registered" do
lambda do
user = @new_user.can_save(@board, "Manager")
end.should change(User,:count).by(1)
end
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
undefined method `id' for true:TrueClass
Run Code Online (Sandbox Code Playgroud)
这是为什么?
我有一系列经理用户.
但是有重复的用户.
我想将它们分组,以便阵列中每个用户只有一个实例.
最好的方法是什么?
@managers.sort_by{|obj| obj.id} # Just sorted the data but did not eliminate duplicats
@managers.group_by{|u|u.name} # just created a bunch of arrays for each name
Run Code Online (Sandbox Code Playgroud) 鉴于这种:
if (params[:to].to_s =~ (/^r\+.*@site.com$/)) == nil
Run Code Online (Sandbox Code Playgroud)
如何使site.com动态: #{SITE_CONFIG['mail_host']}
我试过了
if (params[:to].to_s =~ (/^r\+.*@#{SITE_CONFIG['mail_host']}$/)) == nil
Run Code Online (Sandbox Code Playgroud)
哪个没用..想法?
我正在使用一个名为Gmaps4Rails的模块的地图应用程序.使用这个gem我从我的模型中定义了图像的路径,并且可以根据我正在使用的图像的某些数据来获取它.它在开发环境中工作正常,但由于无法找到图像文件夹而导致生产中断.这就是代码在模型中的样子:
def gmaps4rails_marker_picture
{
"picture" => "/images/oilpumpjack.png",
"width" => "32",
"height" => "32"
}
end
Run Code Online (Sandbox Code Playgroud)
有没有简单的方法从模型中获取正确的路径(我不想对其进行硬编码)?
此致,约翰