Questions tagged «ruby-on-rails»

Ruby on Rails是一个用Ruby编写的开源全栈Web应用程序框架。它遵循流行的MVC框架模型,并以其“配置之上的约定”方法进行应用程序开发而闻名。

11
link_to图片标签。如何将类别添加到标签
我正在使用link_to img标签,如下所示 <%= link_to image_tag("Search.png", :border=>0, :class => 'dock-item'), :action => 'search', :controller => 'pages'%><span>Search</span></a> 这导致以下HTML <a href="/pages/search"><img alt="Search" border="0" class="dock-item" src="/images/Search.png?1264132800" /></a><span>Search</span></a> 我希望class =“ dock-item”转到<a>标签而不是img标签。 我该如何更改? 更新: <%= link_to image_tag("Search.png", :border=>0), :action => 'search', :controller => 'pages', :class => 'dock-item' %> 结果是 <a href="/pages/search?class=dock-item"><img alt="Search" border="0" src="/images/Search.png?1264132800" /></a>

4
RSpec:let和before块有什么区别?
let和beforeRSpec中的块有什么区别? 以及何时使用它们? 在下面的示例中,什么是更好的方法(之前或之后)? let(:user) { User.make !} let(:account) {user.account.make!} before(:each) do @user = User.make! @account = @user.account.make! end 我研究了这个stackoverflow帖子 但是像上面这样定义允许关联的东西好吗?



13
ActiveRecord查询联合
我已经使用Ruby on Rail的查询界面编写了一些复杂的查询(至少对我来说): watched_news_posts = Post.joins(:news => :watched).where(:watched => {:user_id => id}) watched_topic_posts = Post.joins(:post_topic_relationships => {:topic => :watched}).where(:watched => {:user_id => id}) 这两个查询本身都能正常工作。两者都返回Post对象。我想将这些帖子合并为一个ActiveRelation。由于某个时候可能有成千上万的帖子,因此需要在数据库级别完成。如果是MySQL查询,我可以简单地使用UNION运算符。有人知道我是否可以使用RoR的查询界面执行类似的操作吗?

16
Rails + Postgres放置错误:其他用户正在访问数据库
我有一个运行在Postgres上的Rails应用程序。 我有两台服务器:一台用于测试,另一台用于生产。 很多时候,我需要在测试服务器上克隆生产数据库。 我通过Vlad运行的命令是: rake RAILS_ENV='test_server' db:drop db:create 我遇到的问题是我收到以下错误: ActiveRecord::StatementInvalid: PGError: ERROR: database <database_name> is being accessed by other users DROP DATABASE IF EXISTS <database_name> 如果有人最近通过Web访问了该应用程序,则会发生这种情况(postgres保持“会话”打开) 有什么方法可以终止postgres DB上的会话? 谢谢。 编辑 我可以使用phppgadmin的界面删除数据库,但不能使用rake任务删除数据库。 如何使用rake任务复制phppgadmin的drop?

2
Rails路由可在单个应用程序上处理多个域
尽管这里和其他地方有几个类似的问题,但我一直无法找到可行的解决方案。对于Rails 3,似乎没有回答这个问题,所以可以这样: 我有一个当前允许用户创建包含其应用程序实例的子域的应用程序。在Rails 2中,最好使用subdomain-fu gem来提供服务,而在Railscast中,根据Railscast- http: //railscasts.com/episodes/221-subdomains-in-rails-3而言,它要简单得多。 那是好东西,但我也想为用户提供将自己的域名与他们的帐户关联的选项。因此,尽管他们可能拥有http://userx.mydomain.com,但我希望他们也选择关联http://userx.com。 我在Rails 2中找到了一些这样做的参考,但是这些技术似乎不再起作用了(特别是这一技术:https : //feefighters.com/blog/hosting-multiple-domains-from-a-single-rails -app /)。 谁能推荐一种使用路由的方法来接受任意域并将其传递给控制器​​,以便我可以显示适当的内容? 更新:由于Leonid的及时响应以及对代码的重新审视,我现在已经得到了大部分答案。最终,它需要对我正在使用的现有子域代码(来自Railscast解决方案)进行添加,然后在route.rb中添加一些内容。我还没到那儿,但我想发布到目前为止的内容。 在lib / subdomain.rb中: class Subdomain def self.matches?(request) request.subdomain.present? && request.subdomain != "www" end end class Domain def self.matches?(request) request.domain.present? && request.domain != "mydomain.com" end end 我添加了第二堂课,以模仿第一堂课,这是众所周知的工作方式。我只需添加一个条件,以确保传入域不是我托管主站点的域。 此类在routes.rb中使用: require 'subdomain' constraints(Domain) do match '/' => …

9
告诉红宝石.each循环的结尾
如果我有一个循环 users.each do |u| #some code end 用户是多个用户的哈希。查看您是否位于用户哈希中的最后一个用户并且只想为该最后一个用户执行特定代码的最简单的条件逻辑是什么 users.each do |u| #code for everyone #conditional code for last user #code for the last user end end

5
在Rails控制器中捕获所有异常
有没有办法在Rails控制器中捕获所有未捕获的异常,如下所示: def delete schedule_id = params[:scheduleId] begin Schedules.delete(schedule_id) rescue ActiveRecord::RecordNotFound render :json => "record not found" rescue ActiveRecord::CatchAll #Only comes in here if nothing else catches the error end render :json => "ok" end 谢谢


7
Rails无法从jQuery正确解码JSON(数组变成带有整数键的哈希)
每当我想用jQuery将JSON对象数组发布到Rails时,都会遇到这个问题。如果我对数组进行字符串化,我可以看到jQuery在正确执行其工作: "shared_items"=>"[{\"entity_id\":\"253\",\"position\":1},{\"entity_id\":\"823\",\"position\":2}]" 但是,如果我只是将数组作为AJAX调用的数据发送,则会得到: "shared_items"=>{"0"=>{"entity_id"=>"253", "position"=>"1"}, "1"=>{"entity_id"=>"823", "position"=>"2"}} 而如果我只是发送一个简单的数组,它将起作用: "shared_items"=>["entity_253"] Rails为什么将数组更改为该奇怪的哈希?我想到的唯一原因是,Rails无法正确理解内容,因为这里没有类型(是否可以在jQuery调用中设置它?): Processing by SharedListsController#create as 谢谢! 更新: 我将数据作为数组而不是字符串发送,并且使用该.push()函数动态创建了数组。尝试使用$.post和$.ajax,结果相同。


5
在导轨中使用RSpec和Capybara时未定义的方法'visit'
我无法让水豚与rspec一起工作。它给了我这个错误: undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil> 我知道有很多关于此的帖子,但是没有解决方案对我有用。其中大多数涉及的规范不在/ spec / features中-属于我的。 首先是错误: $bundle exec rspec spec F Failures: 1) security signs users in Failure/Error: visit "/sessions/new" NoMethodError: undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil> # ./spec/features/security_spec.rb:4:in `(root)' Finished in 0.006 seconds 1 example, 1 failure Failed examples: rspec ./spec/features/security_spec.rb:3 # security …

5
使用Rails的form_for但在<form>元素上设置自定义类,属性?
form_for似乎忽略了任何“额外”属性,例如data-foo属性或在其第二个参数中class传递的属性options。 = form_for @user, {:url =&gt; 'foo', :class =&gt; 'x', 'data-bar' =&gt; 'baz' } do |f| # ... 输出是&lt;form&gt;没有x类或data-bar属性的标签。 解决办法是什么? 或者,如何在FormBuilder不使用实例的情况下获取实例form_for?


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.