如何重构这段代码?我写在 Sinatra 我需要分成一个单独的文件
<div class="row">
<div class="col-xs-3">
<% @user.posts.each do |post| %>
<a href="/posts/<%= post.id %>"><%= post.title %></a><br>
<p><%= post.body %></p>
<% unless post.comment.blank? %>
<% post.comment.each do |comment| %>
<p><%= comment.body %></p>
<% unless comment.comment.blank? %>
<% comment.comment.each do |comment2| %>
<p><%= comment2.body %></p>
<% unless comment2.comment.blank? %>
<% comment2.comment.each do |comment3| %>
<p><%= comment3.body %></p>
<% end %>
<% end %>
<% end %>
<% end %>
<% end %>
<% end %>
<% end %>
</div>
</div> …Run Code Online (Sandbox Code Playgroud) 我已经安装了最新版本的指南针,sass和susy.但我仍然收到此错误:
Unable to activate susy-2.1.1, because sass-3.2.17 conflicts with sass (~> 3.3.0)
Run Code Online (Sandbox Code Playgroud)
谁知道这个Ruby的工作原理是什么?
这是我安装的宝石列表:
*** LOCAL GEMS ***
CFPropertyList (2.2.0)
chunky_png (1.3.0)
compass (0.12.4)
compass-core (1.0.0.alpha.19)
compass-import-once (1.0.4)
compass-rails (1.1.3)
fssm (0.2.10)
libxml-ruby (2.6.0)
multi_json (1.9.2)
nokogiri (1.5.6)
rb-fsevent (0.9.4)
rubygems-update (2.2.2)
sass (3.3.4, 3.3.3, 3.2.17)
sqlite3 (1.3.7)
susy (2.1.1)
Run Code Online (Sandbox Code Playgroud) 当我尝试任何 rails,rake在临时服务器我得到了命令no such file to load -- ap (LoadError),
对于 rails s:
/usr/local/lib/ruby/gems/1.8/gems/bundler-1.0.22/lib/bundler/runtime.rb:68:in`require': no such file to load -- ap (LoadError)
xxxx
/config/application.rb:7
Run Code Online (Sandbox Code Playgroud)
对于 rake -T:
rake aborted!
no such file to load -- ap
Run Code Online (Sandbox Code Playgroud)
我的 application.rb档案:
require File.expand_path('../boot', __FILE__)
require 'rails/all'
# If you have a Gemfile, require the gems listed there, including any gems
# you've limited to :test, :development, or :production.
Bundler.require(:default, Rails.env) if defined?(Bundler)
Run Code Online (Sandbox Code Playgroud)
我的rails和ruby版本:
我目前正在审查一些 Rails 控制器。该控制器接受用户输入,并根据该用户输入创建一个新对象,如下所示:
clazz = params[:type].classify.constantize
clazz.new(some_method_which_returns_filtered_params)
Run Code Online (Sandbox Code Playgroud)
我担心这种方法的安全性。Ruby 中是否存在可以恶意使用“新”方法的类?
例如,可能会用新符号淹没程序,导致拒绝服务(请参阅http://brakemanscanner.org/docs/warning_types/denial_of_service/)。
在主页我有:
汽车:
<select id="cars">
<option value="volvo">Volvo </option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi </option>
</select>
Run Code Online (Sandbox Code Playgroud)
static_pages_spec.rb中的测试代码:
it "should have the right select" do
visit home_path
it { should have_select('cars', :options => ['volvo', 'saab','mercedes','audi'])}
end
Run Code Online (Sandbox Code Playgroud)
回应是
rspec ./spec/requests/static_pages_spec.rb:21 # Static pages Home page should have the right select
Run Code Online (Sandbox Code Playgroud) 我试图在给定的时间段后使用其 PID 杀死一个进程,即,如果该进程持续运行超过 10 分钟,我必须调用一个方法来杀死它。
我有两个问题:首先,我无法终止进程,我正在使用:
Process.kill('INT', pid)
Run Code Online (Sandbox Code Playgroud)
但是错误不断出现,例如Bad file descriptor,或者unsupported name 'SIGQUIT'当我使用QUIT信号而不是INT.
其次,如何在调用终止进程的方法之前制作 10 分钟计时器?
谢谢。
我有以下类方法:
def self.product(basket)
Product.find(basket.to_a).collect do |product|
product.name + " " + product.size + " " + product.color
end
end
Run Code Online (Sandbox Code Playgroud)
以上产生以下内容:
["T-Shirt Medium Grey", "Sweatshirt Medium Black"]
Run Code Online (Sandbox Code Playgroud)
我尝试过以下方法:
def self.product(basket)
a = Product.find(basket.to_a).collect do |product|
product.name + " " + product.size + " " + product.color
end
b = a.shift.strip
end
Run Code Online (Sandbox Code Playgroud)
但这最终只给了我数组的第一部分 T-shirt Medium Grey
我在找它给我
T-shirt Medium Grey, Sweatshirt Medium Black
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
谢谢
我正在尝试构建一个凤凰应用程序,我处理一个POST请求.我想得到请求体,我似乎无法找到任何关于如何做的文档.
做一些逆向工程我得到了以下代码:
defmodule MyApp.Controllers.Pages do
use Phoenix.Controller
def post(conn) do
{_, {_, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, body, _, _, _, _, _, _}} = conn.adapter
text conn, "#{inspect body}"
end
end
Run Code Online (Sandbox Code Playgroud)
与路由:
defmodule MyApp.Router do
use Phoenix.Router
post "/test", MyApp.Controllers.Pages, :post
end
Run Code Online (Sandbox Code Playgroud)
必须有更好的方法,不是吗?
预期行为:
curl -XPOST localhost:4000/test -d 'this is a test'
$ "this is a test"
Run Code Online (Sandbox Code Playgroud) 我正在为我的高吞吐量Web服务器选择技术.我使用Phoenix创建了两个天真的实现,一个在Go中,另一个在Elixir中.
我已经在AWS上的一台超大型机器上部署了这些版本,并使用围攻来衡量它们的性能.
设置完成后我设法提高了Go的性能GOMAXPROCS,但是在完全利用机器的CPU或内存之前,运行Elixir版本似乎达到了最佳性能.
我似乎无法找到任何关于如何在生产环境中微调牛仔行为的文档或解释,因此它将正确利用它运行的机器,并产生每个人都谈论的性能......
我很确定有一个简单的地方(文件或环境变量),我可以调整一两个值来产生更好的结果.
谁能告诉我这个地方可能在哪里?
我已经在 R 中安装了 mixdist 包来组合发行版。具体来说,我正在使用该mix()功能。请参阅文档。
基本上,我得到
Error in nlm(mixlike, lmixdat = mixdat, lmixpar = fitpar, ldist = dist, :
missing value in parameter
我用谷歌搜索了错误消息,但没有弹出任何有用的结果。
我的第一个参数mix()是一个名为 data.df 的数据框。它的格式与内置数据集 pike65 完全相同。我也这么做了data.df <- as.mixdata(data.df)。
我的第二个参数有两行。它是一个名为 datapar 的数据框,其格式与 pikepar 完全相同。我的pi值是0.5和0.5。我的mu值为 250 和 463(基于我的数据集)。我的sigma值是0.5和1。
我的电话mix()看起来像:
fitdata <- mix(data.df, datapar, "norm", constr = mixconstr(consigma="CCV"), emsteps = 3, print.level = 2)
打印显示我的pi值在第一次迭代后从 0.5 变为 NaN,并且我的梯度变为 0。
如果您能帮助解决此错误,我将不胜感激。
谢谢,
妮
ruby ×7
elixir ×2
erlang ×2
arrays ×1
cowboy ×1
erb ×1
kill-process ×1
mixed-models ×1
nlm ×1
performance ×1
pid ×1
process ×1
r ×1
rspec ×1
rubygems ×1
security ×1
sinatra ×1
susy-compass ×1
susy-sass ×1
windows ×1