这篇文章主要围绕RubyonRails国家/州选择“Enigma”和公路碎石国家标准展开,旨在为您提供一份详细的参考资料。我们将全面介绍RubyonRails国家/州选择“Enigma”的优缺点,解答
这篇文章主要围绕Ruby on Rails国家/州选择“ Enigma”和公路碎石国家标准展开,旨在为您提供一份详细的参考资料。我们将全面介绍Ruby on Rails国家/州选择“ Enigma”的优缺点,解答公路碎石国家标准的相关问题,同时也会为您带来ruby-on-rails – Puma比Ruby 1.9.3和Rails 3.2的Unicorn好吗?、ruby-on-rails – Rails / Ruby pain – 如何检查gem是否基于UNIX / UNIX?、ruby-on-rails – Rails 3.2,如何更改:从邮件中的值而不是默认值(GMail)、ruby-on-rails – Rails 4.模型中的国家验证的实用方法。
本文目录一览:- Ruby on Rails国家/州选择“ Enigma”(公路碎石国家标准)
- ruby-on-rails – Puma比Ruby 1.9.3和Rails 3.2的Unicorn好吗?
- ruby-on-rails – Rails / Ruby pain – 如何检查gem是否基于UNIX / UNIX?
- ruby-on-rails – Rails 3.2,如何更改:从邮件中的值而不是默认值(GMail)
- ruby-on-rails – Rails 4.模型中的国家验证
Ruby on Rails国家/州选择“ Enigma”(公路碎石国家标准)
我正在尝试实现看似非常简单的东西,并且到目前为止,我一直在反对它。
我希望得到的最终结果是与“国家选择”下拉列表绑定的“国家选择”下拉列表,这样,当选择了给定的国家/地区时,如果知道了状态,则这些状态将显示在选择下拉列表中,如果该国家没有已知的州,然后显示一个文本字段。
我觉得我快到了。此时,该界面实际上将根据人员所在的国家/地区生成该州的列表,除非它拒绝动态更新下拉列表。
我收集国家和州位置的部分视图如下:
# _person_setup.html.erb <td> <%= f.label :country, ''Select your country'' %>*<br /> <%= f.select :country, Carmen::country_names, {}, {:style => ''width: 200px'', :id => ''country_select'', :onchange => remote_function( :url => {:action => ''update_states''}, :with => "''country=''+value")} %> </td><td> <p> <div id="states_div"> <%= render :partial => ''states'', :object => Carmen::states( Carmen::country_code( @person.country)), :locals => {:form => f} %> </div> </p> </td>
DIV中引用的部分如下:
# _states.html.erb<% unless states.nil? or states.empty? %> <%= form.label :state, ''Select your state'' %>*<br /> <%= form.select :state, states.collect{|s| [s[0], s[0]]} %><% else %> <%= form.label :state, ''Please enter state or province'' %>*<br /> <%= form.text_field :state %><% end %>
最后,用于动态更新状态列表的控制器代码:
def update_states puts "Attempting to update states..." q = params[:country] states = Carmen::states(Carmen::country_code(q))puts "Country = #{q}, states = #{states.collect{|s| s[0]}.join(", ")}."render :update do |page| page.replace_html "states_div", :partial => ''states'', :object => states, :locals => {:form => form_for(@person)}endputs "OK"end
现在,将在适当的时候调用此代码并生成适当的状态列表。例如,当用户单击澳大利亚时,“尝试更新州…国家=澳大利亚,州=澳大利亚首都特区,新南威尔士州,北领地,昆士兰州,南澳大利亚州,塔斯马尼亚州,维多利亚州,西澳大利亚州”显示在服务器进程。但是,它不会更新页面,并且不会在最后打印“
OK”。简而言之,失败的线路无疑是
page.replace_html "states_div", :partial => ''states'', :object => states, :locals => {:form => form_for(@person)}
请注意,用
page.replace_html ''states_div'', "<b>is it working</b>"
正确地替换了div,但是当然没有任何有用的东西。
有人可以帮我了解这里发生了什么吗?
答案1
小编典典您似乎在假设@person变量在您的原始操作中仍然可用。可以通过针对当前人员的过滤器进行设置,但您不会在问题中显示出来。
如果确实需要再次查找@person,则必须在我认为的remote_function中传递ID。
ruby-on-rails – Puma比Ruby 1.9.3和Rails 3.2的Unicorn好吗?
我的问题:Ruby 1.9.3的Rails 3.2应用程序怎么样?独角兽还是美洲豹?
解决方法
http://ylan.segal-family.com/blog/2013/05/20/unicorn-vs-puma-redux/
Unicorn是一个Rack HTTP服务器,它使用分支进程来同时处理多个传入请求.
>流程管理:独角兽将收获并重启死亡的员工
从破碎的应用程序.没有必要管理多个进程
端口你自己独角兽可以产生和管理任何数量的工人
您选择的流程扩展到您的后端.
>负载平衡完全由操作系统内核完成.
在忙碌的工作过程中,请求永远不会堆积.
>不管你的应用程序是否线程安全,工作人员都不在乎
在自己的隔离地址空间内运行,只提供一个
客户端一次最大的鲁棒性.
>支持所有机架应用程序,以及Ruby的前Rack版本
在Rails上通过机架包装.
>内置通过USR1重新打开应用程序中的所有日志文件
信号.这允许logrotate以原子和速度旋转文件
通过重命名,而不是racy和slow copytruncate方法.独角兽
还采取措施确保来自一个请求的多行日志条目
都保留在同一个文件中.
> Nginx风格的二进制升级而不会丢失连接.您可以
升级Unicorn,您的整个应用程序,库甚至您的
Ruby解释器不会丢弃客户端.
> before_fork和after_fork钩子,以防您的应用程序出现
处理分叉过程时的特殊需求.这些不应该
当“preload_app”伪指令为false时(默认值)需要.
>可以使用随便写入的内存管理来保存
内存(通过将“preload_app”设置为true).
>可以在多个接口(包括UNIX套接字)上进行侦听
工作进程也可以通过after_fork绑定到专用端口
钩子容易调试.
>简单易用的Ruby DSL配置
>即时解码分块传输,从而允许上传进度
通知将被实施并能够隧道化
基于HTTP的任意流式协议.
对于Puma(所谓的服务器杂讯的较新版本)
Puma是Ruby Web应用程序的简单,快速,高度并发的HTTP 1.1服务器.它可以用于支持Rack的任何应用程序,并被认为是Webrick和Mongrel的替代品.它被设计为Rubinius的去服务器,但也与JRuby和MRI良好. Puma适用于开发和生产环境.
美洲狮是速度和并行性的最爱
如果你想看速度比较,那么美洲豹是最好的.
为了更多你可以看到http://puma.io/
谢谢
ruby-on-rails – Rails / Ruby pain – 如何检查gem是否基于UNIX / UNIX?
是否有任何宝石可以“筛选”所有宝石,看看在Windows上使用它是否有任何问题.
解决方法
说实话,Windows是Ruby世界中的二等公民.大多数情况下,这是因为Linux,BSD,OS X和几乎所有其他基于POSIX的系统都会在一件事情上达成一致,Windows将会做一些完全不同的事情.
由于开发人员的疏忽,即使是打算与Windows一起使用的宝石也可能偶尔会破坏.大多数gem作者没有针对Windows运行的持续集成服务器,而是依赖于用户的错误报告.
支持Windows很困难,不仅因为API差异,而且由于Windows生态系统的特性,对命令行编译器的访问不像其他系统那样被认为是理所当然的.这意味着任何不是纯Ruby的gem都可能是一个安装挑战,特别是如果它有其他依赖,在Windows中工作是棘手的.
唯一可以确定的方法是尝试安装宝石并查看它们是否有效.
ruby-on-rails – Rails 3.2,如何更改:从邮件中的值而不是默认值(GMail)
我试过这个,但它不起作用.知道为什么吗?
notifications_mailer.rb
class NotificationsMailer < ActionMailer::Base default to: "info@hikultura.com" def new_contact(message) @message = message mail(:subject => "[hiKultura.com] #{message.subject}",:from => message.email) end end
的ContactController
class ContactController < ApplicationController def new @message = Contactmessage.new end def create @message = Contactmessage.new(params[:contactmessage]) if @message.valid? NotificationsMailer.new_contact(@message).deliver redirect_to(root_path,:notice => "Message was successfully sent.") else flash.Now.alert = "Please fill all fields." render :new end end end
UPDATE
我跟踪了我在SO中发现的类似案例:reply_to和GMail.但是,当我点击回复时,仍显示:到电子邮件地址.我错过了什么?
notifications_mailer.rb
class NotificationsMailer < ActionMailer::Base default :from => 'no-reply@mydomain.com' def new_contact(message) @message = message mail(:reply_to => "mierda@hotmail.com",:subject => "[mydomain.com] #{message.subject}",:to => "admin@mydomain.com" ) end end
解决方法
mail(:subject => "[hiKultura.com] #{message.subject}",:reply_to => message.email)
ruby-on-rails – Rails 4.模型中的国家验证
例如,如果使用gem carmen-rails,它只提供helper country_select.是否可以在模型中使用ISO 3166-1代码的国家验证?
解决方法
validates :country,inclusion:{in:Carmen::Country.all.map(&:code)}
但如果这就是你所需要的,那么countries gem也可能运作良好.有了你可以做的国家
validates :country,inclusion:{in:Country.all.map(&:pop)}
要么
validate :country_is_iso_compliant def country_is_iso_compliant errors.add(:country,"must be 2 characters (ISO 3166-1).") unless Country[country] end
更新
对于Region和State,您可以像这样同时验证所有3个.
validates :country,:region,:state,presence: true validate :location def location current_country = Country[country] if current_country #valid regions would be something Like "Europe" or "Americas" or "Africa" etc. errors.add(:region,"incorrect region for country #{current_country.name}.") unless current_country.region == region #this will work for short codes like "CA" or "01" etc. #for named states use current_country.states.map{ |k,v| v["name"}.include?(state) #which would work for "California" Or "Lusaka"(it's in Zambia learn something new every day) errors.add(:state,"incorrect state for country #{current_country.name}.") unless current_country.states.keys.include?(state) else errors.add(:country,"must be a 2 character country representation (ISO 3166-1).") end end
虽然地区似乎没必要,因为你可以从国家这里暗示这一点
before_validation {|record| record.region = Country[country].region if Country[country]}
关于Ruby on Rails国家/州选择“ Enigma”和公路碎石国家标准的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于ruby-on-rails – Puma比Ruby 1.9.3和Rails 3.2的Unicorn好吗?、ruby-on-rails – Rails / Ruby pain – 如何检查gem是否基于UNIX / UNIX?、ruby-on-rails – Rails 3.2,如何更改:从邮件中的值而不是默认值(GMail)、ruby-on-rails – Rails 4.模型中的国家验证等相关内容,可以在本站寻找。
本文标签: