我在rails应用程序中有一个date_select字段,如下所示:
<%= f.date_select :dateinstructed %>
Run Code Online (Sandbox Code Playgroud)
我想重新排序下拉列表显示它们输出为:
DD/MM/YYYY
Run Code Online (Sandbox Code Playgroud)
根据我所读到的,您可以使用:order选项,但我不确定如何实际使用此选项:
<%= f.date_select :dateinstructed, :order = {:day, :month, :year} %>
Run Code Online (Sandbox Code Playgroud)
显然这是不对的,但我应该用什么代替:
:day, :month, :year
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激!
谢谢,
丹尼
是否可以显示created_at日期,仅当该日期与今天的日期匹配时?
<%=h k.created_at %>
Run Code Online (Sandbox Code Playgroud)
这可能吗?或者应该在控制器而不是视图中完成?
谢谢,
丹尼
我的环境中有以下内容.rb:
ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.merge!(:default => '%d/%m/%Y')
ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(:default => '%d/%m/%Y')
Run Code Online (Sandbox Code Playgroud) 我在rails 2.3.5并安装了最新的Ruby,我的应用程序运行良好,但GMail电子邮件除外.
我正在尝试设置以前有效的gmail imap连接,但现在不想知道.
这是我的代码:
# Be sure to restart your server when you modify this file
# Uncomment below to force Rails into production mode when
# you don't control web/app server and can't set it the proper way
# ENV['RAILS_ENV'] ||= 'production'
# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '2.3.5' unless defined? RAILS_GEM_VERSION
# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')
Rails::Initializer.run do |config|
# Gems …Run Code Online (Sandbox Code Playgroud) 我在服务器上创建了一个新的git repo,然后提交了所有文件.一旦提交了这些文件,我就创建了一个新的.gitignore文件并提交了它.
我以错误的顺序完成了两次提交,因为原始提交添加了大约30k文件,而.gitignore文件没有任何影响.如果我可以清除两个提交,然后首先提交.gitignore文件,希望它会大大减少文件的数量并使repo更小.
这可能吗?我从未将回购推送到BeanstalkApp(我们的托管git帐户),所以希望它是可能的.
谢谢,
丹尼
我对我们的Magento商店升级从1.5.0到1.6.0,我知道我是怎么想这样做,但我对我需要使用命令有点不确定.
对于初学者,我在我们的生产服务器上有我当前的商店,我有git设置,并且我们的Beanstalk帐户上有repo的副本.我在该回购中有完整的变更历史,并且最好保留这些变更.
我有一个我们购买的主题然后进行了大量优化,但幸好几乎所有的优化都在override.css文件中.虽然,主题文件本身中有一些次要的代码更改.
由于Magento使用SVN作为他们的CVS,我发现(在Github上)Magento发布的镜像.
所以,到目前为止,我有三个位置,我想"合并":
我正在考虑将Magento镜像作为分支添加到我现有的git repo中,称之为1.6.0或类似.然后以某种方式将普通主题目录和文件拉入主分支......
我在正确的路线上吗?
为了保护生产网站,我还在考虑添加网站的暂存版本来运行这些合并来测试它们.
我有一个示例Rails 3.1.1应用程序,我已设置为管理用户帐户等.
我运行以下步骤将admin属性添加到用户表:
$ rails generate migration add_admin_to_user admin:boolean
Run Code Online (Sandbox Code Playgroud)
在我的迁移中添加了以下内容:
class AddAdminToUser < ActiveRecord::Migration
def self.up
add_column :users, :admin, :boolean, :default => false
end
def self.down
remove_column :users, :admin
end
end
Run Code Online (Sandbox Code Playgroud)
然后我运行db:migrate并将以下内容添加到我的布局文件中:
<% if current_user.admin? %>
You are ADMIN.
<%end %>
Run Code Online (Sandbox Code Playgroud)
然后,为了添加第一个管理员用户,我使用了以下种子文件:
puts 'SETTING UP DEFAULT USER LOGIN'
user = User.create! :name => 'Test User', :email => 'test@test.com', :password => 'password', :password_confirmation => 'password'
puts 'New user created: ' << user.name
Run Code Online (Sandbox Code Playgroud)
这很有用,所以我随后用admin字段对它进行了调整:
puts 'SETTING UP DEFAULT USER LOGIN'
user = …Run Code Online (Sandbox Code Playgroud) 我正在使用Magento以下脚本将我们的目录导入Google购物:
<?php
define('SAVE_FEED_LOCATION','google_base_feed.txt');
set_time_limit(1800);
require_once '../app/Mage.php';
Mage::app('default');
try{
$handle = fopen(SAVE_FEED_LOCATION, 'w');
$heading = array('id','mpn', 'upc','title','description','link','image_link','price','brand','product_type','condition', 'google_product_category', 'manufacturer', 'availability');
$feed_line=implode("\t", $heading)."\r\n";
fwrite($handle, $feed_line);
$products = Mage::getModel('catalog/product')->getCollection();
$products->addAttributeToFilter('status', 1);
$products->addAttributeToFilter('visibility', 4);
$products->addAttributeToSelect('*');
$prodIds=$products->getAllIds();
$product = Mage::getModel('catalog/product');
$counter_test = 0;
foreach($prodIds as $productId) {
if (++$counter_test < 30000){
$product->load($productId);
$product_data = array();
$product_data['sku'] = $product->getSku();
$product_data['mpn'] = $product->getData('upc');
$product_data['upc'] = $product->getData('upc');
$title_temp = $product->getName();
if (strlen($title_temp) > 70){
$title_temp = str_replace("Supply", "", $title_temp);
$title_temp = str_replace(" ", " ", $title_temp);
}
$product_data['title'] …Run Code Online (Sandbox Code Playgroud) 我一直在尝试找出阻止访问 Rails 3 应用程序(少量 IP 地址和几个 IP 子网除外)的正确方法。
在寻找方法时,我发现了这个问题/答案。建议代码如下:
应用控制器
before_filter :protect
def protect
@ips = ['127.0.0.1', '203.123.10.1'] #And so on ...]
if not @ips.include? request.remote_ip
# Check for your subnet stuff here, for example
# if not request.remote_ip.include?('127.0,0')
render :text => "You are unauthorized"
return
end
end
Run Code Online (Sandbox Code Playgroud)
这是有效的,所以我将其更改为重定向到静态页面而不仅仅是文本消息。
不过,我想做的是允许从与 Rails 应用程序服务器位于同一子网上的本地 IP 进行访问。子网很简单192.168.1.0/24。
将子网添加到接受的 IP 的最简单/最干净的方法是什么?
我在Rails 3应用程序中有一个文章模型.文章模型有一个名为categories的列,它使用新表单视图中的选择框进行设置.(这是一个选择框,因为选项永远不会改变,只有四个选项).
我的索引视图代码如下:
<% @articles.category.each do |article| %>
<%= article.category %>
<% @articles.each do |article| %>
<tr>
<td><%= article.title %></td>
<td><%= article.author %></td>
<td><%= article.category %></td>
<td><%= link_to 'Show', article %></td>
<td><%= link_to 'Destroy', article, confirm: 'Are you sure?', method: :delete %></td>
</tr>
<% end %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我在控制器中按类别分组:
@articles = Article.group(:category).order('title ASC')
Run Code Online (Sandbox Code Playgroud)
但是,这会导致异常,指向以下行<% @articles.category.each do |article| %>.
实现以下内容的最简洁(从我的视图代码中)是什么方式:
所以每篇文章都列在它的类别下面.
我试图获得两个不同值的纬度和经度值.这些是在属性start和end我的里程模型中设置的.
geocoded_by :end, :latitude => :latitude, :longitude => :longitude
geocoded_by :start, :latitude => :start_lat, :longitude => :start_lon
Run Code Online (Sandbox Code Playgroud)
我的里程模型中有以下属性:
start
start_lat
start_long
end
latitude
longitude
Run Code Online (Sandbox Code Playgroud)
根据geocoded_by前程万里(Mileage)模型顶部的哪一行,只对其中一个属性进行地理编码.有没有办法让地理编码器宝石处理这两个属性?