我正在使用这样的路线
match "/v1/:method" => "v1#index"
Run Code Online (Sandbox Code Playgroud)
我的意图是捕获api方法的名称,然后将请求发送到控制器内的该方法.
def index
self.send params[:method], params
end
Run Code Online (Sandbox Code Playgroud)
我认为这会将其他参数作为参数发送给方法,但它不起作用.所以我的问题是如何在查询字符串中传递非方法参数?
我的一个应用程序中有一个奇怪的错误.
当我使用sqlite3数据库时,错误不存在.但是当我使用mysql2作为数据库适配器时,我遇到了从表单中保存十进制值的错误.
如果我在删除小数后提交值19.99我的输入并将其作为19.00存储在数据库中
什么会导致这个?数据库具有正确的列设置,我可以使用rails控制台创建正确的记录.
编辑:当我真的想说十进制时说的整数.
我最近采用了一个项目,其Employee模型需要将人员的可用时间作为属性.
现有表单使用168个复选框来表示一周中的每个小时,并将信息存储为数据库中的七个24位二进制字符串,每个位在该日的相应小时内充当布尔值true或false.
我真的很想过渡到一些更优雅和易于管理的东西,但我还没有能够提出任何与现有实施的灵活性相匹配的简单解决方案.
将时间段存储为开始和结束时间与每天可能有多个时间输入一样繁琐,并且可能使得在特定时间查询可用性更复杂.
在用户界面和数据库结构中是否有处理此类信息的最佳实践?
我有一个Rails 4.1.0可安装的引擎.在引擎的application_helper.rb中:
module MyEngine
module ApplicationHelper
def test123
"test123"
end
end
end
Run Code Online (Sandbox Code Playgroud)
该方法位于虚拟应用程序的general/index.html.erb视图中:
%<= test123 %>
Run Code Online (Sandbox Code Playgroud)
这有效.但是,当我更改返回的字符串def test123并刷新浏览器时,不会显示新字符串.
当然,在虚拟应用程序中重新启动Web服务器会显示新字符串.
所以问题是,如何在不重新启动Web服务器的情况下重新加载引擎的文件?
PS.我最好找一种方法来使用Rails本身,或者解决这个问题的特定宝石(但不是像Guard,Spork等通用宝石,尽管如果所有其他方法都失败了,我也会考虑这些.)
PPS.在SO上也有类似的问题,但我已经尝试过所有这些问题(即使它们适用于Rails 2.x,3.x),但它们并没有为我工作.
我刚刚开始使用Ruby on Rails开发,我对源代码"隐私"有疑问.
根据我目前所知(我尚未完成部署,仅在本地开发环境中使用RoR),在部署RoR应用程序时,所有源代码在服务器上都是"可见的"?
我该如何保护我的代码; 可以这么说?保护我的意思是,主要目的是某人(例如RoR提供商的服务器管理员)无法通过轻松搞清楚代码中的"摆弄"位置来"破坏"代码.
像Shopify,Yellowpages等使用RoR的网站如何确保他们的代码不被"破坏"?
更新我真正想要的是,假设我有一些代码正在进行信用卡交易,我不希望一些流氓员工阅读"纯文本源代码"并破坏我的网站,比如通过阅读我的源代码然后向所有已注册用户收取10美元的费用.我该如何防止这种事情发生?
我想request.method应该返回一个符号一样:get,:put等等?但是在控制器动作中,我得到的GET是一个字符串!
难道我做错了什么?
在routes.rb:
resources :posts
member do
get 'some_action'
end
end
Run Code Online (Sandbox Code Playgroud)
在.erb视图中:
<%= link_to "Some Action",some_action_post_path %>
Run Code Online (Sandbox Code Playgroud)
在PostsController:
def some_action
p request.method # => "GET"
p request.method.class.name # => "String"
if request.method == :get
#does not get called
end
end
Run Code Online (Sandbox Code Playgroud)
PS.我在Ruby 1.8.7 p330上使用Rails 3.0.3
正则表达式中使用的"控制字符"在正则表达式解析器的不同实现之间有很大差异(例如,Ruby,Java,C#,sed等中的正则表达式).
例如,在Ruby中,\D手段not a digit; 它在Java,C#和sed中是否意味着相同?我想我要问的是,所有正则表达式解析器都支持正则表达式的"标准"吗?
如果没有,是否应该学习和掌握一些共同的子集(然后在遇到它们时学习特定于解析器的子集)?
默认情况下,设计使用电子邮件地址进行注册和登录.
但我希望用户可以更改电子邮件地址.
如果我允许用户编辑电子邮件地址,并且用户指定"不正确"(即错误拼写错误)电子邮件地址,然后用户注销,并且用户也忘记错字电子邮件是什么,现在是用户帐户是用户无法访问的!
如何最好地解决这个问题?(除了创建一个单独的,不可更改的用户名字段,始终允许用户登录)
我将gem更新到最新的1.8.1,现在当我使用rails命令时,我得到如下错误
NOTE: Gem::Specification#default_executable= is deprecated with no replacement.
It will be removed on or after 2011-10-01.
Gem::Specification#default_executable= called from /Library/Ruby/Gems/1.8/specifications/rubygems-update-1.7.2.gemspec:11.
NOTE: Gem::Specification#default_executable= is deprecated with no replacement. It will be removed on or after 2011-10-01.
Gem::Specification#default_executable= called from /Users/Haxrat/.gem/ruby/1.8/specifications/RedCloth-4.2.7.gemspec:10.
Run Code Online (Sandbox Code Playgroud) 我很难搞清楚何时分配一个对象.我正在阅读Apress iPhone Dev for Beginners一书.有时它说使用:
UIImage *seven = [UIImage imageNamed:@"seven.png"];
Run Code Online (Sandbox Code Playgroud)
和其他时候,
UIImageView *sevenView = [[UIImageView alloc] initWithImage:seven];
Run Code Online (Sandbox Code Playgroud)
你为什么不在第一个例子中分配UIImage?
谢谢 - 绝对初学者.
ruby ×3
c# ×1
devise ×1
forms ×1
gem ×1
java ×1
javascript ×1
mysql ×1
obfuscation ×1
objective-c ×1
regex ×1
routing ×1
security ×1
sql ×1