尝试在Mac osx 10.8上使用postgresql运行Rails以部署到heroku.我是mac的新手.
安装PostgrSQL会遇到很多麻烦,所以我可能会尝试一些尝试所有潜在解决方案的东西.其中主要是权限和现有的OSX安装.对于这个问题,我注意到一些事情让我觉得有一些基本的目录或版本冲突,我不知道如何解决.但我可能是错的,这是别的!任何方向表示赞赏.
检索如下错误:
$ rake db:create:all
could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
Run Code Online (Sandbox Code Playgroud)
我不知道它在哪里以及为什么要查找var目录但〜/ var似乎是/ private/var的链接(别名)(其中有空pgsql_socket和pgsql_socket_alt目录),/ usr/local/var不有pgsql_socket目录,但有一个postgres目录.这两个目录我的管理员用户都有来自finder获取信息对话框的读写权限.
显示的上述错误后面是gems 1.8目录中的一个长堆栈,并以此结束:
Couldn't create database for {"pool"=>5, "database"=>"blog_development", "password"=>nil, "username"=>"USERNAME", "encoding"=>"unicode", "adapter"=>"postgresql"}
Run Code Online (Sandbox Code Playgroud)
所以检查:
$ which psql
/usr/bin/psql
Run Code Online (Sandbox Code Playgroud)
我记得安装postgresql后我做了这个:
initdb /usr/local/var/postgres -E utf8
Run Code Online (Sandbox Code Playgroud)
确认:
$ ps aux | grep postgres
username 346 0.0 0.1 2479616 7724 ?? S 3:08PM 0:00.03 /usr/local/bin/postgres -D /usr/local/var/postgres -r /usr/local/var/postgres/server.log
Run Code Online (Sandbox Code Playgroud)
捆绑显示产量:pg(0.14.1) …
我试图遵循这个"操作方法"(从POST到S3存储桶)并且似乎在我的策略和签名上失败了.
我不太确定我的政策和签名是错的吗?但我知道我在评估我在助手中创建的方法时遇到了问题.我已经尝试将Policy和签名值转换为符号<%= :S3_UPLOAD_SIGNATURE %>,我尝试过<%= h,<%= raw,"#{<%= ..}".
之前我没有问题就调用了辅助方法,所以我有点迷失了.
错误:
NameError in Proj_files#new
Showing /app/views/proj_files/new.html.erb where line #8 raised:
uninitialized constant ActionView::CompiledTemplates::S3_UPLOAD_POLICY
Extracted source (around line #8):
5: <input type="hidden" name="AWSAccessKeyId" value= <%= ENV['AWS_ACCESS_KEY_ID'] %> >
6: <input type="hidden" name="acl" value="private">
7: <input type="hidden" name="success_action_redirect" value="http://localhost/">
8: <input type="hidden" name="policy" value= <%= S3_UPLOAD_POLICY %> >
9: <input type="hidden" name="signature" value= <%= S3_UPLOAD_SIGNATURE %> >
10: <input type="hidden" name="Content-Type" value="image/png">
11: <!-- Include any additional input fields here …Run Code Online (Sandbox Code Playgroud) 我有几个变量,我希望所有控制器访问.所以我在application_controller.rb中定义了它们:
before_filter :initialize_vars
def initialize_vars
@siteTitle = "my title"
@companyName = "company"
end
Run Code Online (Sandbox Code Playgroud)
没有问题.我想用徽标做类似的事情,所以我创建了另一个用before_filter调用的方法.
def logo
image_tag("Logo.jpg", :alt => "Logo")
end
Run Code Online (Sandbox Code Playgroud)
徽标img的一个实例应链接到站点根目录,因此我调用它:
<%=h link_to logo, root_path %>
Run Code Online (Sandbox Code Playgroud)
但它在我的布局中不起作用!当我将我的logo方法添加到application_helper.rb时,一切都很完美.hhmmm.
什么/适合这些东西的适当位置?我的意思是因为我能够使它工作不正确!
我应该在application_controller中定义我的实例变量(我将其视为全局变量)和我帮助器中的logo方法,就像我已经完成的那样?我觉得我在这里缺少一些基本的理解,为什么他们需要去不同的地方.我不确定我是否正在调用"徽标"方法或者我正在使用它.我将使用我如何调用以及如何编写徽标方法,因为我觉得这两种方法都应该放在application_controller中.
想法?
谢谢!
对那些帮助..谢谢.仍然没有解决方案,但越来越近 我认为错误是因为我的"文件"评估为"app/views/main/show/_partial.html.erb".和render添加它自己的相对路径.所以我想我需要列出文件名..也许是dir.foreach或dir.glob类型命令..我会继续挖掘.谢谢!
我有一个目录,其中包含我要在页面中调用的部分内容.所以我写了一个循环,但它产生了错误.
<% Dir["app/views/main/show/*"].each do |file| %>
<%= render #{file} %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
当我用简单的替换渲染线
文件
它列出了文件名,所以我知道循环和Dir位置工作.我认为的问题是渲染正在寻找一个字符串.所以我尝试了各种各样的东西,从搜索谷歌和这里像#{file},创建一个变量,原始,...等.另外我认为渲染可能在相对于Dir的不同目录中查找.我会在那里尝试一些东西.
我应该怎么处理这个?我想从Dir切换到Dir.foreach或任何其他有意义的策略.
谢谢.
编辑:这是我实现的解决方案(目录路径从上面改变):
<% Dir["app/views/partials/show/*.html.erb"].each do |file| %>
<p> <%= render 'partials/show/' + File.basename(file,'.html.erb').slice!(1..-1) %></p>
<% end %>
Run Code Online (Sandbox Code Playgroud) 我想搜索网站的每个页面.我的想法是找到保留在域内的页面上的所有链接,访问它们并重复.我将不得不采取措施,不再重复努力.
所以它很容易开始:
page = 'http://example.com'
nf = Nokogiri::HTML(open(page))
links = nf.xpath '//a' #find all links on current page
main_links = links.map{|l| l['href'] if l['href'] =~ /^\//}.compact.uniq
Run Code Online (Sandbox Code Playgroud)
"main_links"现在是活动页面中以"/"开头的链接数组(应该只是当前域上的链接).
从这里我可以将这些链接提供给上面类似的代码,但我不知道确保我不重复自己的最佳方法.我想我在访问时会开始收集所有访问过的链接:
main_links.each do |ml|
visited_links = [] #new array of what is visted
np = Nokogiri::HTML(open(page + ml)) #load the first main_link
visted_links.push(ml) #push the page we're on
np_links = np.xpath('//a').map{|l| l['href'] if l['href'] =~ /^\//}.compact.uniq #grab all links on this page pointing to the current domain
main_links.push(np_links).compact.uniq #remove duplicates after pushing?
end …Run Code Online (Sandbox Code Playgroud) 我在将类似问题的答案应用到我的情况时遇到了麻烦,我认为这是因为我正在寻找的值是一个变量而不是大多数其他常量字符串.
我有一个activeSlide等于活动幻灯片的变量:1,2或3.我想要data-dir = activeSlide显示粗体文本的按钮,但我似乎无法根据数据值选择按钮.我可以选择一个确切的幻灯片编号:
$('btns [data-dir=2]')...
Run Code Online (Sandbox Code Playgroud)
但是替换2 activeSlide或者#{activeSlide}没有产生任何结果.我打算用类而不是数据重写我的所有代码 - 让我感到困惑!在我这样做之前,有人会介意我如何选择data-dir = activeSlide的按钮吗?
HTML:
<div class='btns'>
<button data-dir='1'>1</button>
<button data-dir='2'>2</button>
<button data-dir='3'>3</button>
</div>Run Code Online (Sandbox Code Playgroud)
我有一个类实例,其属性是从其他属性计算的.属性将在实例的整个生命周期中发生变化.初始化对象时,不一定定义所有属性.
什么是从其他属性计算属性的pythonic方法?
这是一个简单的例子,计算有许多输入变量(下面的"a")和计算("b"和"c").
a = something
b = function of a (a+5)
c = function of a and b (a*b)
Run Code Online (Sandbox Code Playgroud)
我尝试了很多实现.这是一个体面的沟通我的意图.
class CalcAttr(object):
def __init__(self):
self._a = None
self._b = None
self._c = None
@property
def a(self):
return self._a
@a.setter
def a(self,value):
self._a = value
@property
def b(self):
self.calc_b()
return self._b
@property
def c(self):
self.calc_c()
return self._c
def calc_b(self):
self._b = self._a + 5
def calc_c(self):
self._c = self._a * self._b
def test():
abc = CalcAttr()
a = 5
return …Run Code Online (Sandbox Code Playgroud) 我决定通过S3提供rails资产; heroku有很棒的教程如何做到这一点.该网站现在从我的亚马逊桶提供资产,但我不确定为什么我必须手动运行heroku run rake assets:precompile一个git push heroku master运行a rake assets:precompile.
运行git push heroku master不在我的存储桶中的资产后,预编译的输出是:
AssetSync: using default configuration from built-in initializer
AssetSync: using default configuration from built-in initializer
rake aborted!
Fog provider can't be blank, Fog directory can't be blank
/tmp/build_3vtwfg15g8ajx/vendor/bundle/ruby/1.9.1/gems/asset_sync-0.5.0/lib/asset_sync/asset_sync.rb:29:in `sync'
/tmp/build_3vtwfg15g8ajx/vendor/bundle/ruby/1.9.1/gems/asset_sync-0.5.0/lib/tasks/asset_sync.rake:3:in `block in <top (required)>'
Tasks: TOP => assets:precompile:nondigest
(See full trace by running task with --trace)
Precompiling assets failed, enabling runtime asset compilation
Injecting rails31_enable_runtime_asset_compilation
Run Code Online (Sandbox Code Playgroud)
我确实设置了雾提供程序和目录:heroku config:add FOG_DIRECTORY=XXX FOD_PROVIDER=AWS …
终于明白了!我没有加载CSS!傻我...谢谢你帮助我解决其他问题!
我在本地使用ruby on rails.
尝试使用"jquery-ui-1.8.16.custom.min.js"和"jquery-1.6.2.min.js"
我能够得到jQuery ui"手风琴"工作得很好..但"标签"将无法正常工作!
我检查文件是否正确调用并在正确的位置...
<script type="text/javascript" src="/javascripts/jquery-ui-1.8.16.custom/js/jquery-ui-1.8.16.custom.min.js">
<script type="text/javascript" src="/javascripts/jquery-ui-1.8.16.custom/js/jquery-1.6.2.min.js">
Run Code Online (Sandbox Code Playgroud)
firebug显示以下3个错误(尝试使用jquery ui"tabs"):
jQuery is not defined
[Break On This Error] c.ui.isOverAxis(b,e,i)}})}})(jQuery);
jquery...4700986 (line 18)
element.dispatchEvent is not a function
[Break On This Error] element.dispatchEvent(event);
protot...4640791 (line 5653)
$("#tabs").tabs is not a function
[Break On This Error] $( "#tabs" ).tabs();
Run Code Online (Sandbox Code Playgroud)
这些错误告诉我刚刚从他们的"稳定"链接下载的jQuery UI库出了问题....是这样的情况还是其他东西在这里?
谢谢!
在更改了我的libs的顺序后,我能够将其降低到1错误(原型库的错误)....
element.dispatchEvent is not a function
Run Code Online (Sandbox Code Playgroud)
[打破此错误] element.dispatchEvent(event);
下面是一个更新,其中包含我的选项卡html和js ...
<div id="tabs">
<ul>
<li><a href="#tabs-1">tab1</a></li>
<li><a href="#tabs-2">tab2</a></li>
<li><a href="#tabs-3">tab3</a></li>
</ul>
<div id="tabs-1">
<p>tab1 content</p> …Run Code Online (Sandbox Code Playgroud) amazon-s3 ×2
jquery ×2
ruby ×2
assets ×1
attributes ×1
class ×1
controller ×1
dry ×1
helper ×1
heroku ×1
html ×1
jquery-ui ×1
loops ×1
macos ×1
methods ×1
nokogiri ×1
partial ×1
post ×1
postgresql ×1
python ×1
select ×1
upload ×1
variables ×1
web-crawler ×1
web-scraping ×1