Tag: 的Ruby on 轨道

是否可以在rake任务上记录sql查询?

类似于打印每个执行的sql查询的’rails server’,我想对rake任务执行相同的操作。 实现这一目标的最佳方法是什么?

查看后Flash不会清除

这是我的创作动作。 它创建Message的新实例,使用模型validation进行检查。 然后有一个简单的if else循环,如果模型validation已经完成则发送消息,如果他们想要发送另一个,则呈现“新”视图。 如果未满足模型validation,则只需再次呈现“新”视图。 如果消息成功,则闪存哈希还会填充相关信息,成功消息和警报消息。 def create @message = Message.new(message_params) if @message.valid? Contactform.contact(@message.name, @message.town, @message.email, @message.content).deliver flash[:success] = “Sent message” render ‘new’ else flash[:alert] = “Alert” render ‘new’ end end 但是,我不认为我做得对,因为消息留在闪光灯中。 他们被查看一次后就不会被清除。 我该如何确保闪光灯应该清除? 更新 这就是错误的产生方式。 我成功发送了一条消息,然后我回到了“新”视图,我收到了一个’成功’的闪存。 我尝试发送错误信息,然后我回到“新”视图,我收到了之前的“成功”闪光和“警报”闪光。 对用户来说非常困惑! 第二个我浏览到另一个页面,两个闪烁消失,但这是我认为的问题。 与返回同一页面有关,因此Rails不知道要清除闪存。 我可以强制清除闪光灯吗?

如何安装git只用于从github安装rails的插件?

如何安装git只用于从github安装rails的插件?

Ruby返回TypeError:无法将Object转换为String

我开始使用Ruby,我有以下模块: module RadioreportHelper @totalsum = 0 @radio @daysAndTotals def load(service, transactionsPerDay) puts “#{service} : #{transactionsPerDay}” @radio = service @daysAndTotals = transactionsPerDay transactionsPerDay.each{|day, total| @totalsum += total } end attr_reader :radio, :daysAndTotals, :totalsum end 我正在运行以下unit testing用例: class RadioreportHelperTest 20, 2=>30, 4=>40, 5=>50} radioReport = RadioreportHelper.load(service, transactionsPerDay) assert_not_nil(radioReport) assert_equal(“Mix”, radioReport.radio.name) end end 但我总是得到以下错误:TypeError:无法将Service转换为String 我希望服务对象位于模块RadioreportHelper中并将其存储在@radio变量而不是字符串中。 谢谢,所有的帮助家伙!

我的用户为什么不关注/取消关注按钮?

我正在构建一个应用程序(遵循Michael Hartl的第11章 ),用户可以在其中跟踪由其他用户创建的项目。 我创建了一个ProjectRelationship模型来保存两个组件:用户的follower_id和项目的projectuser_id。 外键已经设置好了。 现在,我的_follow_form.html.erb页面呈现“follow”或“ _follow_form.html.erb ”,具体取决于current_user是否跟随项目。 请参阅下面的代码,看看我错过了什么。 现在,在每个项目显示页面上生成跟随按钮。 但是,当我单击_follow.html.erb生成的按钮按钮时,当我调用@project.followers.count时,它似乎没有跟随项目或更新计数,因为POST没有发生。 因此,当我点击关注按钮时,url变得混乱。 见例子: #Goes from domain.com/projects/21 #to domain.com/projects/21?utf8=%E2%9C%93&authenticity_token=5EQmU0EkHB5yKDYakqL78piMWzZl0CfdpHFEqBeQiN4%3D&project_relationship%5Bprojectuser_id%5D=21&commit=Follow%22 * *更新:它现在似乎工作,但我不确定我是否真的改变了什么,但摆脱了follower_id索引:unique => true通过迁移更改。 schema.rb create_table “project_relationships”, :force => true do |t| t.integer “follower_id” t.datetime “created_at”, :null => false t.datetime “updated_at”, :null => false t.integer “projectuser_id” end add_index “project_relationships”, [“follower_id”], :name => “index_project_relationships_on_follower_id”, :unique => true add_index […]

哪个Web开发框架最适合Google App Engine?

现在谷歌允许在App Engine上使用Java,我想知道这对App Engine的Web框架选择有何影响。 我意识到谷歌提供了非常准确的webapp框架。 可用于App Engine的.96版django是限制性的。 web2py从我所听到的内容中消耗了资源。 Rails(现在可用)不能使用ActiveRecord,ActiveResource,restclient,rmagick。 是否有一些我缺少的东西 – 任何框架在App Engine上运行良好吗?

如何在Rails中更改URL

我有一个名为Book的资源,然后我有以下域名: domain.com/books/272 但我想把它改成 domain.com/stories/272 仅限URL,不需要更改控制器,类等。 在我的路线 map.connect ‘:controller/:action/:id’ map.connect ‘:controller/:action/:id.:format’ map.root :controller => ‘static’ 我该怎么做? 谢谢

如何在rails插件中正确扩展ActionController

我正在写一个Rails插件(让我们称之为Foo)。 我希望它在控制器中提供’bar’ 类function,这样我就可以: class ApplicationController bar … end bar是使用插件加载文件vendor / plugins / foo / init.rb定义的。 就像是 class ActionController::Base def self.bar … end end 问题是其他一些插件(在我的情况下是ResourceController)可能会在 foo 之前加载并访问ApplicationController。 所以会发生什么是在插件’foo’之前加载ApplicationController并且因为没有’bar’定义YET而失败。 所以…我如何正确地使其工作? 我注意到许多其他扩展ActionController的插件(例如inherited_resources,resource_controller)正在做同样的事情,所以看起来是谁首先加载以决定它是否失败或工作。 我知道我可以将代码放在某个模块中,并在调用’foo’之前手动将模块添加到ApplicationController代码中。 我宁愿不,我喜欢’foo’的清洁。 我也不想做手册’要求’。 插件本身应该自动加载:)

在另一个表中定义对同一列的两个引用

我的项目中有一个Team表。 我做了一个应该使用以下命令创建表Match的迁移: rails generate model Match Team:references Team:re ferences score1:integer score2:integer date:datetime length:integer place:string 我希望我的Matches表包含2个在Teams表上引用相同列(id)的外键(team1,team2)。 我很确定我做错了,因为在schema.rb中有: create_table “matchs”, force: true do |t| t.integer “Team_id” t.integer “score1” t.integer “score2” t.datetime “date” t.integer “length” t.string “place” t.datetime “created_at” t.datetime “updated_at” end add_index “matchs”, [“Team_id”], name: “index_matchs_on_Team_id” 而且我看不到第二个Team_id。 做我需要的正确方法是什么?

此客户没有附加的付款来源

我一直得到同样的错误,客户没有附加付款来源…… 我不明白为什么会这样。 attr_accessor :stripe_card_token def save_with_payment if valid? customer = Stripe::Customer.create(description: email, plan: plan_id, source: stripe_card_token) self.stripe_customer_token = customer.id save! end end end