小编Zab*_*bba的帖子

rails 3 - link_to以销毁无法正常工作

我正在尝试创建一个销毁链接到我的用户控制器,我也在使用设计.

这是我的代码 -

视图

<%= link_to 'Delete User?', child, :confirm => "Are you sure you want to delete #{child.full_name}?", :method => :delete, :class => "user-additional", :style => "font-size:12px;font-weight:normal;" %>
Run Code Online (Sandbox Code Playgroud)

调节器

def destroy
 if @user = User.find(params[:id])
  @user.destroy
  respond_to do |format| 
    format.html { redirect_to account_index_path } 
    format.xml { head :ok } 
  end
 end
end
Run Code Online (Sandbox Code Playgroud)

路线

devise_for :users 
resources :users, :except => [:new]
Run Code Online (Sandbox Code Playgroud)

该链接转换为localhost:3000/users/10

单击此按钮将打开用户显示而不是删除它们

有任何想法吗 ?

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

37
推荐指数
4
解决办法
5万
查看次数

DateTime.now还是Time.now?

我应该在Rails应用程序中使用哪两个:

DateTime.now or Time.now
Run Code Online (Sandbox Code Playgroud)

在申请中使用两者有什么危害吗?

在上述(now)示例的情况下,两者之间是否会有任何差异?(在我目前的系统中,他们都显示相同的时间)

ruby time timezone ruby-on-rails

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

如何在URL中重命名REST路由?

给我一个名为的模型Apple并且它有一个控制器ApplesController,路由是:

resources :apples

    apples  GET    /apples (.:format)          {:controller=>"apples ", :action=>"index"}
  new_apple GET    /apples /new(.:format)      {:controller=>"apples ", :action=>"new"}
 edit_apple GET    /apples /:id/edit(.:format) {:controller=>"apples ", :action=>"edit"}
Run Code Online (Sandbox Code Playgroud)

我想保持所有代码相同,除了在URL中,"apple"将被"car"替换.因此,URL /apples/new将成为/cars/new.

有没有办法在不触及应用程序中的任何其他代码的情况下执行此操作?(即在应用内部,它仍然appleApplesController)

我尝试过:as选项:

resources :apples, :as => "cars"

    cars    GET    /apples (.:format)          {:controller=>"apples ", :action=>"index"}
  new_car   GET    /apples /new(.:format)      {:controller=>"apples ", :action=>"new"}
 edit_car   GET    /apples /:id/edit(.:format) {:controller=>"apples ", :action=>"edit"}
Run Code Online (Sandbox Code Playgroud)

但这只改变了路线的"名称",而不是URL(所以new_apple_path变成了new_car_path,但new_car_path仍然指向/apples/new而不是/cars/new)

routes ruby-on-rails-3

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

范围解析运算符

我偶然碰巧在我看到的一个源代码中找到了这个.所以,我在这里给出了一个类似的小例子.

在文件test.h中:

#include<iostream>

class test{
    int i;
public:
    test(){}
    //More functions here
};
Run Code Online (Sandbox Code Playgroud)

test.cpp文件中:

#include "test.h"

int main()
{
    test test1;
    test::test test2;
    test::test::test test3;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

首先,是否有理由宣布test2这种方式?其次,这个代码在g ++ 4.4.3版和更低版本中编译得很好.C++标准中有什么东西说,当不需要解析范围时,范围解析运算符会被忽略吗?

c++ scope g++

32
推荐指数
2
解决办法
2037
查看次数

将数据从`datetime_select`转换为DateTime对象的Rails方法在哪里?

当我们<%= f.datetime_select :somedate %>在表单中使用时,它会生成如下HTML:

<select id="some_date_1i" name="somedate1(1i)">  #year
<select id="some_date_2i" name="somedate1(2i)">  #month
<select id="some_date_3i" name="somedate1(3i)">  #day
<select id="some_date_4i" name="somedate1(4i)">  #hour
<select id="some_date_5i" name="somedate1(5i)">  #minute
Run Code Online (Sandbox Code Playgroud)

提交该表单后,将somedate1(<n>i)收到以下值:

{"date1(1i)"=>"2011", "date1(2i)"=>"2", "date1(3i)"=>"21", "date1(4i)"=>"19", "date1(5i)"=>"25"}
Run Code Online (Sandbox Code Playgroud)

如何将其转换为DateTime对象?我可以编写自己的方法来执行此操作,但由于Rails已经能够进行转换,我想知道是否可以调用Rails方法为我执行此操作.

问题是,我不知道在哪里寻找那种方法.

PS.我最终试图解决我遇到的另一个问题,这个问题是尝试找到另一个问题的解决方案的第一步.

ruby-on-rails-3

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

为什么我的开发服务器没有加载?default_controller_and_action':missing:action(ArgumentError)

我是一个Ruby nuby(也是Stack Overflow的新手),正在研究Michael HartlRails教程,突然间我的开发服务器无法加载并继续退出.控制台也不会加载和Rspec spec /产生错误/异常.我包括终端的一些输出,非常感谢您的帮助.

Exiting
/Users/ameedachowdhury/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/gems/actionpack-3.0.3/lib/action_dispatch/routing/mapper.rb:164:in `default_controller_and_action': missing :action (ArgumentError)
    from /Users/ameedachowdhury/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/gems/actionpack-3.0.3/lib/action_dispatch/routing/mapper.rb:68:in `normalize_options!'
    from /Users/ameedachowdhury/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/gems/actionpack-3.0.3/lib/action_dispatch/routing/mapper.rb:51:in `initialize'
    from /Users/ameedachowdhury/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/gems/actionpack-3.0.3/lib/action_dispatch/routing/mapper.rb:261:in `new'
    from /Users/ameedachowdhury/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/gems/actionpack-3.0.3/lib/action_dispatch/routing/mapper.rb:261:in `match'
    from /Users/ameedachowdhury/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/gems/actionpack-3.0.3/lib/action_dispatch/routing/mapper.rb:1112:in `match'
    from /Users/ameedachowdhury/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/gems/actionpack-3.0.3/lib/action_dispatch/routing/mapper.rb:1297:in `match'
    from /Users/ameedachowdhury/rails_projects/railstutorial/config/routes.rb:11:in `block in <top (required)>'
    from /Users/ameedachowdhury/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/gems/actionpack-3.0.3/lib/action_dispatch/routing/route_set.rb:233:in `instance_exec'
    from /Users/ameedachowdhury/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/gems/actionpack-3.0.3/lib/action_dispatch/routing/route_set.rb:233:in `draw'
    from /Users/ameedachowdhury/rails_projects/railstutorial/config/routes.rb:1:in `<top (required)>'
    from /Users/ameedachowdhury/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:235:in `load'
    from /Users/ameedachowdhury/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:235:in `block in load'
    from /Users/ameedachowdhury/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:225:in `block in load_dependency'
    from /Users/ameedachowdhury/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:596:in `new_constants_in'
    from /Users/ameedachowdhury/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:225:in `load_dependency'
    from /Users/ameedachowdhury/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/gems/activesupport-3.0.3/lib/active_support/dependencies.rb:235:in `load'
    from /Users/ameedachowdhury/.rvm/gems/ruby-1.9.2-p0@rails3tutorial/gems/railties-3.0.3/lib/rails/application.rb:127:in `block in reload_routes!'
    from …
Run Code Online (Sandbox Code Playgroud)

action ruby-on-rails-3

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

是否存在针对布尔语的I18N翻译?

我需要根据表达式是真还是假来在各种语言中显示"是"或"否".目前我这样做:

fr.yml:

fr:
  "yes": Oui
  "no": Non
Run Code Online (Sandbox Code Playgroud)

辅助方法:

def t_boolean(expression)
  (expression) ? t("yes") : t("no")
end
Run Code Online (Sandbox Code Playgroud)

ERB:

Valid: <%= t_boolean(something.is_valid?) %>
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来做到这一点?

Rails是否已经有像这样的真/假翻译?

internationalization ruby-on-rails-3

23
推荐指数
2
解决办法
9278
查看次数

我在哪里可以找到好的AREL文档?

我正在尽可能多地学习关于AREL的知识.但我不知道该怎么看.

在rubydoc上找到了一些文档,但在显示什么是"公共API"/可访问的东西方面它似乎不太好.例如,我找不到有关"包含"方法的任何信息.

那么,究竟如何学习AREL提供的大部分内容呢?(即没有深入研究源代码)

documentation arel ruby-on-rails-3

22
推荐指数
3
解决办法
8782
查看次数

为什么`config.time_zone`似乎没有做任何事情?

application.rb,它说:

将Time.zone默认设置为指定区域,并将Active Record自动转换为此区域.运行"rake -D time"以获取用于查找时区名称的任务列表.默认为UTC.

但是设置config.time_zone = 'Central Time (US & Canada)'或者config.time_zone = 'Eastern Time (US & Canada)'没有效果 - created_at模型中的字段是以UTC格式保存的.

根据这个railsforum回答:

config.time_zone只是让rails知道你的服务器被设置为这个时区,所以当它将日期写入数据库时​​,它可以正确地将它转换为UTC.

如果这是真的,那么它为什么,当我的系统时间Pacific Time (US & Canada)config.time_zone = 'Central Time (US & Canada)'config.time_zone = 'Eastern Time (US & Canada)',该created_at时间是正确的UTC?它应该不正确吗?!

因为,如果PST时间是晚上8点,则EST是晚上11点,UTC是凌晨4点.假设Rails确实如此Time.now,那将是晚上8点.我们告诉Rails服务器在EST中.因此,就Rails而言,晚上8点将是EST时间,然后UTC将是UTC时间上午5点,这将是不正确的(因为实际时间是太平洋标准时间晚上8点/美国东部时间晚上11点,即UTC时间上午4点)

这里发生了什么?

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

21
推荐指数
2
解决办法
2万
查看次数

如何找到最高价的记录?

这将返回最大信号,而不是完整的记录:

self.prices.maximum(:price_field)
Run Code Online (Sandbox Code Playgroud)

目前,我发现这样的记录:

def maximum_price
  self.prices.find(:first, :conditions => "price = #{self.prices.maximum(:price_field)}" )
end
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?因为上面需要两个SQL语句来使它工作,并且它在某种程度上感觉不对.

PS.另外,我希望如果多个记录具有相同的"最大"值,那么它应该得到具有最新updated_at值的记录.这意味着另一个SQL语句?

PPS.有没有人知道Rails中AREL和非AREL事物的详细参考?ActiveRecord查询的Rails指南还不够!

(我正在使用Rails 3)

=== UPDATE ===

使用AREL我执行以下操作:

self.prices.order("updated_at DESC").maximum(:price_field)
Run Code Online (Sandbox Code Playgroud)

但是,这仅给出了最大价值,而不是完整的记录:(
而且,是利用maximum()真AREL?

activerecord max arel ruby-on-rails-3

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