小编rug*_*ert的帖子

如何在rails 3中创建自定义mySQL查询?

我试图显示用户发布的纹身最近添加的评论.所以,如果我贴了一个纹身,然后user_b发布了"嘿,我喜欢你的纹身",那么我试图得到评论.

首先,我使用acts_as_commentable_with_threading gem,它不会为我试图加入的表创建外键.所以我的控制器无法寻找tattoo_id,它必须寻找commentable_id

在控制器中,我必须调用Comment模型,然后将一些SQL内容传递给它,但显然我不知道如何将自定义SQL查询传递给ruby,因为即使我的查询字符串在终端中工作,我也会得到各种各样的废话.试图在铁轨中使用它.

我基本上试图这样做:

SELECT comments.id FROM comments,tattoos WHERE commentable_id = tattoos.id AND 
tattoos.member_id = #{current_user}
Run Code Online (Sandbox Code Playgroud)

其中#{current_user}将是传入的current_user.

activerecord ruby-on-rails ruby-on-rails-3

4
推荐指数
1
解决办法
2150
查看次数

如何链接到属于Rails 3中对象的下一个或上一个记录?

所以我有一个图像(纹身)共享网站有3种不同的索引图像方式.显示Image.all的主页面,显示@ member.images.all的成员图像,以及成员的专辑图像.也就是说,一个会员有很多图像(和专辑),一个专辑有很多图像.

现在,当您点击图片时,无论其位于何处(索引,会员的个人资料或会员专辑),您都可以进入展示页面.我想我可能需要一个上一个和下一个链接来显示下一个图像,但我需要能够将图像限制到它们的父容器.

因此,如果我正在查看相册中的图像,我需要下一个和上一个链接才能链接到该相册中的图像.如果我正在查看会员的图像而不是在相册中,那么链接将指向会员所拥有的图像,而不是相册中的图像.

如果图像位于首页,则链接将指向所有图像.

ruby-on-rails ruby-on-rails-3

4
推荐指数
1
解决办法
1625
查看次数

VirtualHost文件都指向Ubuntu 12.04中的第一个VirtualHost

所以我设置了2个虚拟主机文件,example1.com和example2.com,其中包含以下信息:

- 第一个文件

<VirtualHost 127.0.0.1:80>
    ServerName  example1.com
    ServerAlias www.example1.com
    ServerAdmin admin@example1.com
    DocumentRoot    /var/www/example1.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

- 第二个文件

<VirtualHost 127.0.0.1:80>
    ServerName  example2.com
    ServerAlias www.example2.com
    ServerAdmin admin@example2.com
    DocumentRoot    /var/www/example2.com
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

并设置我的主机文件来阅读

127.0.0.1 locahost
127.0.0.1 example1.com
127.0.0.1 example2.com
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试访问localhost,example1.com或example2.com,我的浏览器只会将我发送到example1.com

默认的虚拟主机文件具有:

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>
Run Code Online (Sandbox Code Playgroud)

我假设/ var/www的AllowOverride优先于root正确吗?

所以后来我用a2dissite关闭了所有的虚拟主机,并在hosts文件中注释掉了这些行,但现在我的一半网站都没有工作.

我的一个wordpress网站似乎无法拉出它的css文件所以它全部顶起(24小时前很好),一些网站似乎已经失去了与数据库的连接.

我不知道最近会发生什么,但一切都被打倒了.

编辑 - 我的原始问题有两个虚拟主机文件指向example1.com,这是一个复制粘贴失败,实际文件指向合法的网站URL

apache2 virtualhost ubuntu-12.04

4
推荐指数
1
解决办法
1161
查看次数

WordPress 骨架、VVV、多站点和正确的 Nginx 规则

我正在使用 Composer 构建自动 WordPress 部署,并将 wp-content 文件夹保留在主 WP 安装之外(因为我有一些自定义插件和主题),该文件夹是从 github 中提取的。

从 github 拉取并运行 Composer 后,我的文件夹结构如下所示:

-composer.php
-env.php
-public/
 |-index.php
 |-wp-config.php
 |-wp-content/
   |-themes/
   |-plugins/
   |-sunrise.php
 |-wp/
   |wordpress stuff
Run Code Online (Sandbox Code Playgroud)

我的 htaccess 规则在使用 MAMP 时运行良好,但我使用 VVV 作为我的开发环境,而 VVV 使用 nginx,因此我的重写规则不起作用。

VVV 使用 2 个conf 文件:一个文件由虚拟机上的所有站点共享(通用规则),另一个文件用于每个站点(基本上仅列出根目录)。

这是我的站点特定的conf文件:

server {
    listen       80;

    listen       443 ssl;

    server_name  auto.dev ~^auto\.\d+\.\d+\.\d+\.\d+\.xip\.io$;
    root         /srv/www/auto/htdocs/wordpress;

    # my rules    
    # tells nginx to prepend "wp" to things
    rewrite ^/(wp-.*.php)$ /wp/$1 last;
    rewrite ^/(wp-(content|admin|includes).*) /wp/$1 last;
    # end WP dir rules …
Run Code Online (Sandbox Code Playgroud)

php wordpress nginx url-rewriting vvv-wordpress

4
推荐指数
1
解决办法
859
查看次数

我可以验证acts_as_taggable_on标签的存在吗?

是的,我有一个模型acts_as_taggable_on :styles,我的样式标签从一系列复选框传入:

<% styles.each do |style|%>
  <%= check_box("tattoo", "style_list", {:multiple => true}, style, nil) %> <span class="tatto_style"><%= style %></span>
<% end %>
Run Code Online (Sandbox Code Playgroud)

但我想确保用户检查至少一种样式.

validation ruby-on-rails acts-as-taggable-on ruby-on-rails-3

3
推荐指数
1
解决办法
1072
查看次数

kaminari和order_by

所以我列出了我网站的所有成员,并按名称对它们进行分组,以便更好地组织列表.因此,在我看来,我的所有成员都按其成员名称的第一个字母分组,如:

B

Bakedfish
Beercan Dan
Bigmike33x 

C

Cynicalassassin
ect..
Run Code Online (Sandbox Code Playgroud)

无论如何,我也想对这个列表进行分页,但是如果我使用命令,我不能将Kaminari的分页参数添加到我的控制器,因为我得到一个未定义的方法错误.

所以这不起作用:

@members = Member.all.group_by{|u| u.fullname[0].titleize}.page(params[:page]).per(18)
Run Code Online (Sandbox Code Playgroud)

我的观点看起来像这样:

<div class="content">
  <%= paginate @members %>
</div>
    <% @members.keys.sort.each do |starting_letter| %>
            <h3>
            <%= link_to starting_letter, {:action => :browse, :controller =>:members, :letter => starting_letter } %>
</h3>
      <ol>
                <% @members[starting_letter].each do |member| %>
                    <li>
                        <% if member.is_artist? %>
                            <%= link_to member.full_name, member_path(member), :class=>"artist" %>
                        <% else %>
                            <%= link_to member.full_name, member_path(member) %>
                        <% end %>
                    </li>
                <% end %>
        </ol>
    <% end %>
Run Code Online (Sandbox Code Playgroud)

这是我的错误消息: …

ruby ruby-on-rails ruby-on-rails-3

3
推荐指数
1
解决办法
1763
查看次数

如何在不使用 API 密钥的情况下获取所有 google 字体的列表?

我正在制作一个 WordPress 主题,其功能允许用户从 Google 选择自己的字体。显然,因为这是一个 WordPress 主题,所以无法为每次安装创建新的 API 密钥。

我所需要的只是按字母顺序排列的字体列表。

如果有人给我一种按类别分组的方法,那就加分了!

php wordpress google-font-api

3
推荐指数
1
解决办法
9013
查看次数

尝试通过将php.ini放在wordpress root中来启用allow_url_fopen不起作用

好吧,我正在构建一个花哨的裤子wordpress主题和部分主题有php获取图像宽度和使用这些数字来调整页面元素.它在我的本地机器上工作正常,但是当我使用cpanel将主题放在我的托管服务器上时,它不起作用.

我收到这个错误

Warning: getimagesize() [function.getimagesize]: http:// wrapper is disabled in the server configuration by allow_url_fopen=0 in /home/yoursite/public_html/wpsite/wp-content/themes/yourtheme/styles/login.php on line 7

Warning: getimagesize(http://yoursite.com/wpsite/wp-content/uploads/2012/11/logo1.png) [function.getimagesize]: failed to open stream: no suitable wrapper could be found in /home/yoursite/public_html/wpsite/wp-content/themes/yourtheme/styles/login.php on line 7
Run Code Online (Sandbox Code Playgroud)

所以我想如果我在wordpress的根目录中创建了一个php.ini文件,其中包含:

[PHP]
allow_url_fopen = 1
Run Code Online (Sandbox Code Playgroud)

那会有用,但它不会.

反正有没有让这个工作?

php wordpress cpanel

3
推荐指数
1
解决办法
3万
查看次数

如何从我的wordpress页面获取精选图像描述?

所以我设置了我的wordpress主题,以允许用户上传精选图像,我建立我的索引页面,以显示所选页面的特色图像,但也想显示图像的描述.

问题是,我没有使用循环,我使用wordpress的设置API作为选项拉取页面ID.

因此,显示特色图像的方式如下:

<?php $bucket_options = get_option('frontpage_display_options'); ?>
<?php $page_one = $bucket_options['frontpage_bucket_one']; ?>
<?php $page_one = get_post($page_one);  ?>
<?php if (has_post_thumbnail($page_one->ID)) : ?>  
      <?php echo get_the_post_thumbnail($page_one->ID, 'bucket'); ?>  
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)

我一直在读这会起作用:

echo get_post(get_the_post_thumbnail_id($page_one->ID))->post_content;
Run Code Online (Sandbox Code Playgroud)

或这个:

echo get_post(get_the_post_thumbnail($page_one->ID))->post_content;
Run Code Online (Sandbox Code Playgroud)

但他们都没有显示任何东西

php wordpress

2
推荐指数
1
解决办法
4397
查看次数

如何在另一个完全完成后启动一个jQuery动画

我有几种情况需要为元素设置动画,比如将其移动到左侧,或者将其淡入,但只有在初始动画完成100%之后.

就像说,当我点击搜索图标时,我有一个从页面顶部滑出的搜索抽屉.这很简单:

$('.search-toggle').on('click', function(){
   $('.search-drawer').slideToggle(); // or fadeIn(), show() ect..
});
Run Code Online (Sandbox Code Playgroud)

但是,如果喜欢,我点击页面底部的搜索切换,我需要在显示搜索抽屉之前向上滚动到顶部?我试过这样的事情:

$('.search-toggle').on('click', function(){
   $('html, body').animate({ scrollTop: 0 }, "slow").find('.search-drawer').slideToggle(); // or fadeIn(), show() ect..
});
Run Code Online (Sandbox Code Playgroud)

但这两个动画同时运行.我尝试过使用延迟,但这似乎不起作用,当顶部链接点击而不是底部时,可能会导致明显的延迟.

也就是说,我也试图运行一个动画,当你点击一个元素时,我希望它像330px一样向左移动然后,当它到达那个位置后,另一个元素会滑入或者我会有第二个元素首先滑入,然后第一个元素会做一些事情.关键是,如何在开始另一个动画之前完成动画制作.

所以对于我的第二个例子,我看到动画回调并不真正起作用.我有另一个动画:

 $first.animate( {
     left : "-=660"
    }, 
    300, 
    function(){
      $second.animate({ left: '-='+startPosition });
    }
 }
Run Code Online (Sandbox Code Playgroud)

所以在这个例子中,理论上第一个$ first会向左移动660个像素,那么$ second会向左移动X个数量吗?它没有,它们看起来像是同时移动.或者更确切地说,$ second在$ first之前开始制作动画.

jquery jquery-animate

2
推荐指数
1
解决办法
9748
查看次数