Questions tagged «ruby-on-rails-3»

Ruby on Rails是一个用Ruby编写的开源Web开发框架。Ruby on Rails遵循约定胜于配置的原则,使您不必重新进行发明以保持生产力。仅将此标记用于Rails 3特定问题,并标记这些问题[ruby-on-rails]。


13
Rails 3-设置页面标题的理想方法
在rails 3中设置页面标题的正确方法是什么?目前,我正在执行以下操作: app / views / layouts / application.html: <head> <title><%= render_title %></title> <%= csrf_meta_tag %> app / helpers / application_helper.rb: def render_title return @title if defined?(@title) "Generic Page Title" end app / controllers / some_controller.rb: def show @title = "some custom page title" end 有另一种/更好的方法来执行上述操作吗?

4
gem install json -v 1.7.3给出“请更新您的PATH以包括构建工具”
当我跑步时: rails new blog 我得到: Installing json (1.7.3) Gem::InstallError: The 'json' native gem requires installed build tools. Please update your PATH to include build tools or download the DevKit from 'http://rubyinstaller.org/downloads' and follow the instructions at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit' An error occurred while installing json (1.7.3), and Bundler cannot continue. Make sure …

7
Rails 3.1,RSpec:测试模型验证
我从在Rails中使用TDD开始了我的旅程,遇到了一个关于模型验证测试的小问题,我似乎找不到解决方案。假设我有一个用户模型, class User < ActiveRecord::Base validates :username, :presence => true end 和一个简单的测试 it "should require a username" do User.new(:username => "").should_not be_valid end 这样可以正确测试状态验证,但是如果我想更具体些怎么办?例如,在错误对象上测试full_messages。 it "should require a username" do user = User.create(:username => "") user.errors[:username].should ~= /can't be blank/ end 我对最初尝试(使用should_not be_valid)的担心是RSpec不会产生描述性错误消息。它只是说“预期有效?返回假,就成真”。但是,第二个测试示例有一个较小的缺点:它使用create方法而不是new方法来获取错误对象。 我希望我的测试可以更具体地说明他们正在测试的内容,但同时不必接触数据库。 有人有意见吗?

1
我可以让Ruby on Rails控制台记住我的命令历史吗,嗯,更好吗?
我在Ruby on Rails 3.1.1中使用控制台,并且发现其命令历史记录(向上箭头)确实很不稳定。我已经运行的命令p = Product.by_name 'Acme'和p.add_search_term('Snipe')今天好几次,在多个控制台会话。 但是,当我重新加载Ruby on Rails控制台时,命令历史记录中仅显示第一个,而不显示第二个。有时,在我重新加载控制台后,它们都在历史记录中。最重要的是,我仅在几次按下向上箭头后看到了几天前的命令。是否需要更改某种配置,或者这是一个错误? Ruby on Rails 3.1.1` Ruby 1.9.2p290` Ubuntu 11.10`

4
生成迁移-创建联接表
我经历了许多期待SO和google职位产生连接表的迁移has many and belongs to many协会并没有什么工作。 所有解决方案都生成一个空的迁移文件。 我正在使用rails 3.2.13,我有两个表:security_users和assignments。这些是我尝试过的一些事情: rails generate migration assignments_security_users rails generate migration create_assignments_security_users rails generate migration create_assignments_security_users_join_table rails g migration create_join_table :products, :categories (following the official documentation) rails generate migration security_users_assignments security_user:belongs_to assignments:belongs_to 谁能说出如何在两个表之间创建联接表迁移?

8
作用域与:has_many:through关联的连接
class Users < ActiveRecord::Base has_many :meetings, :through => :meeting_participations has_many :meeting_participations end class Meetings < ActiveRecord::Base has_many :users, :through => :meeting_participations has_many :meeting_participations end class MeetingParticipations < ActiveRecord::Base belongs_to :user belongs_to :meeting scope :hidden, where(:hidden => true) scope :visible, where(:hidden => false) end hidden是m2m关联表中的一个额外的布尔列。鉴于某些Users情况current_user,我想做 current_user.meetings.visible 它将检索Meetings该hidden列所在的用户是其参与者的集合false。我得到的最接近的是将以下范围添加到Meetings类中 scope :visible, joins(:meeting_participations) & …


4
Rails 3 /不带模型的表单:如何创建不与模型绑定的表单?
我有一个模型,并且有一个视图,该视图显示用于基于该模型创建新对象的表单。我们称该表格为Form1。 用户提交后Form1,即创建了对象。然后,我想在下一页上显示第二个表单Form2,该表单要求用户在将对象保存到数据库之前检查各种选项。 我的问题可能是非常基本的。我不知道如何创建Form2,因为它不直接与模型绑定。因为我是Rails新手,所以我只创建了以下表格: form_for(@object) { |f| ... } @object 是从模型实例化的对象 问题:我不认为这种代码可以满足我的目的。Form2考虑到它一定不能基于@object或@object模型,我该如何创建? 我的应用中的一些细节: 该站点Form1在重定向到OAuth服务器之前接受值()。 当用户在OAuth服务器上验证其凭据时,她将被重定向回我的站点。一个XML-RPC请求,然后获取关于用户的账户上的信息OAuth服务器。 该XML响应可能表明该用户在该帐户上只有一个帐户OAuth服务器。如果是这样,将从中检索一些值XML并将其添加到对象(然后(最终)保存在数据库中),然后将用户重定向到成功页面。 但是,如果XML响应指示用户在OAuth服务器上有多个帐户,则我想显示一个表格(Form2),该表格允许用户选择OAuth服务器上的哪些帐户与我的网站相关联。因此,Form2真正询问用户要创建多少个对象,而不是询问对象的特定属性。





3
将参数传递到局部视图
我有一个视图,可以显示多个图像以及这些图像的关联标签。我决定为每个图像及其标签使用局部视图,但是在将图像对象传递到局部视图时遇到了麻烦。这是主视图的相关代码: <table> <% @images.each do |i| %> <tr> <%= render :partial => :image_tag, :image => i %> </tr> <% end %> </table> 这是部分视图的相关代码(部分视图名为_image_tag.html.erb): <table> <%= image.id %> <%= image_tag image.src %> </table> 我在这个线程中读到,我可以像现在那样传递图像对象。我尝试通过render方法上的选项哈希传递id,但这也没有用。我得到的错误是: undefined method `model_name' for Symbol:Class 围绕我在主视图中调用render:partial的线居中。

3
Rails中列名的别名
在我的数据库中有列名,例如“ delete”或“ listen-control”等。这些不能更改,因此我想为名称加上别名,以避免我的应用程序出现问题。 我找到了以下代码,但是它已经过时了(2005年8月5日),不适用于Rails 3: module Legacy def self.append_features(base) super base.extend(ClassMethods) end module ClassMethods def alias_column(options) options.each do |new_name, old_name| self.send(:define_method, new_name) { self.send(old_name) } self.send(:define_method, "#{new_name}=") { |value| self.send("#{old_name}=", value) } end end end end ActiveRecord::Base.class_eval do include Legacy end 如何别名列名?可能吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.