Tag: 视图

是否可以以编程方式清除Rails 3布局和视图缓存?

我有一个基于Rails 3的CMS,允许用户创建和修改布局和视图。 这些布局和视图与框架中内置的布局和视图相同,仅由某些附加function的模型支持。 我想解决的问题是,这些模板文件在公共端被访问时会被缓存,因此除非重新启动服务器,否则无法看到布局或视图中的更改。 在禁用缓存的开发模式下不会发生这种情况,但显然在生产中关闭模板缓存对性能来说并不是很好。 清除memcache似乎没有办法。 是否有可能以编程方式清除生产中的布局和视图缓存,可能还有像重载这样的东西! 就像我们在控制台中一样? 或者每次有人想要调整其中一个布局或视图时,我都不得不重新启动Passenger(可能使用此线程中的方法: Rails Cache Clearing )? 请注意,我不是指清除公共页面所依赖的页面和操作缓存,并且工作得很好。

Rails 3 – 创建视图以插入多个记录

我有一个看似简单的查询。 我需要创建一个基于单个模型接受多个记录的视图。 在我的例子中,模型是Project,它有1个外键(person)和2个字段时间,角色。 我需要创建一个视图(表单)来插入5个角色。 我收到一条错误消息:未定义的方法`fields [0] [stime]’ 我不认为嵌套模型的railscast是我需要的。 我该怎么做呢? 编辑:项目模型代码如下: class Project < ActiveRecord::Base belongs_to :person attr_accessible :role, :stime end 新方法的Projects_Controller代码如下: def new @project = Project.new end

Ruby on Rails(3)隐藏了视图的一部分

我正在开发Ruby on Rails 3 Web应用程序。 我有一个名为User的表,其名称为coulmn。 我正在寻找隐藏部分视图的最佳方法,这些用户对视图的那些部分具有“错误”角色。 例如,我希望所有用户都能够看到用户index页面,但我只希望具有角色的用户 – admin能够编辑其他用户。 所以首先我使用filter_by阻止edit操作,但我还想要的是使edit按钮不显示。 当前用户保存在会话中,因此检查用户角色非常简单。 我要问的是,除了我要隐藏的每个按钮之前的明显if语句之外,还有一种简单的方法。 我认为rails会有一种简单的方法来做这种事情,我找不到一个。

Rails 3:如何在视图中显示多对多连接?

在我看来,我试图为每次“旅行”显示所有“腿”。 理想情况下,它们看起来像这样: -Trip1.name – Leg1.name – Leg2.name – Leg3.name -Trip2.name – Leg4.name – Leg5.name – Leg6.name 这些模型是多对多的。 我有三张桌腿,Trips和Legs_trips。 模型看起来像这样: Trip.rb class Trip :all_blank end Leg.rb class Leg < ActiveRecord::Base has_and_belongs_to_many :trips validates_uniqueness_of :name accepts_nested_attributes_for :trips end 目前控制器中只有这个: def index @trips = Trip.all @legs = Leg.all respond_to do |format| format.html # index.html.erb format.json { render json: […]

Ruby on Rails:在视图中使用帮助程序初始化实例变量

我遇到了某种类型的范围问题,它阻止实例变量被视图调用的助手正确初始化。 #sample_controller.rb class SampleController < ApplicationController def test end end #application_controller.rb helper_method :display def display if not defined? @display return @display = "a" else return @display += "a" end end #test.html.erb 当显示样品/测试时,它会在“评估nil.reverse”时出现错误。 这是令人惊讶的,因为显示的前两个调用应该初始化@display我会想到。 如果删除,则输出为“a aa”,表示辅助方法正在设置@display实例变量,但视图中无法访问它。 如果控制器被修改成为(使用原始视图代码): class SampleController < ApplicationController def test display end end 输出变成“aa aaa aa”。 如果我在控制器中进行2次调用,我会得到“aaa aaaa aa aa”。 因此,似乎只有控制器中的调用才会修改SampleController实例变量,而视图中的调用将修改视图无法访问的ApplicationController的实例变量。 这是Rails中的错误还是我的误解,这是出于某种原因预期的function? 我遇到这个bug的上下文是试图创建一个logged_in? […]

在RoR视图中获取{{attribute}} {{message}}

登录1错误禁止此{{model}}被保存 以下字段存在问题: {{attribute}} {{message}} 这是视图代码 Login user_session_path do |f| %> `奇怪的是,当输出为几个月时,它会在time_ago_in_words方法中显示出来 只是有点开始随机做这个,以前有人见过吗?

如果内容产生,则以其他方式呈现(Rails 3)

我已经离开Rails一段时间了,所以也许我错过了一些简单的东西。 你怎么能做到这一点: some default content 甚至: 在第一种情况下,我正在尝试: def yield_or(content, &block) content_for?(content) ? yield(content) : yield end 但是这会引发“无阻塞”错误。 在第二种情况: def yield_or_render(content, template) content_for?(content) ? yield(content) : render(template) end 这在没有定义内容时有效,但只要我使用content_for覆盖默认内容,它就会抛出相同的错误。 我用这个作为起点,但它似乎只有在视图中直接使用时才有效。 谢谢!

Rails 3 – 通知和错误闪存无法部分呈现

我试图通过将部分布局移动到局部来清理application.html.erb 。 我有以下代码来处理闪存错误/通知: 这段代码在application.html.erb运行良好,直到我将其移动到一个名为“ _flash.html.erb ”的文件中,并将其替换为以下内容: 在部分中,闪存哈希不是一个可识别的对象,并导致“当你没想到它时,你有一个零对象!” 错误。 我已将代码移回application.html.erb,一切都很好。 但我无法找到部分访问闪存哈希的答案。 看看Rails指南中的“渲染和布局”我可以看到render()有多种方法将变量传递给partial,但是我没有成功地搞清楚它。 有任何想法吗?

在任何页面上设计注册表格

我正在尝试允许用户在我的主页/目标网页上注册该网站。 我已将设计注册表复制到我的目标网页视图中 – resource_name, :url => registration_path(resource_name)) do |f| %> 我还在application_controller.rb 添加了辅助方法 ,以便我正确定义资源 – class ApplicationController < ActionController::Base protect_from_forgery def resource_name :user end def resource @resource ||= User.new end def devise_mapping @devise_mapping ||= Devise.mappings[:user] end end 但是我仍然得到错误undefined local variable or method resource’ ##:0x007fa816b4b750>` 我在这里错过了什么,以便在我的主页登陆页面上正确呈现注册表单?

如何在rails中格式化datetime?

在我的Rails视图中,我有以下代码显示日期时间。 该行的结果如下: 2013-02-02 01:00:00 UTC 如何更改此设置,使其显示为: 2/2/13: X:00 PST