【发布时间】:2015-04-10 01:14:23
【问题描述】:
问题在我的 Rails 应用程序中我有一个名为 range days 的方法我只希望它在控制器操作是 create_half 的情况下工作我该怎么做?任何帮助将不胜感激!!
这是我的入门模型
class Entry < ActiveRecord::Base
self.primary_key = 'id'
//This is what I want to only happen when my controller action is create_half
def range_days
self.range_days = only_weekdays(leave_start.to_date..(leave_end.to_date)).to_d
end
这是我的入口控制器
class EntryController < ApplicationController
def half_day
@entry = Entry.new
render :half_day
end
【问题讨论】:
-
This is what I want to only happen when my controller action is create_half是什么意思?range_days是一个实例方法,可用于Entry的任何实例。 -
是的 @Sharvy Ahmed 我怎样才能让 range_days 只能用于创建?
-
我不建议将方法调用为与你们中的一个属性相同的东西。这现在已成为隐蔽分配,每次调用时都会重置
range_days。这会让以后的调试非常混乱。 -
所以如果我更改了 range_days 方法的名称,我只能在创建正确时调用它?
-
不要保持属性和方法名称相同。如果您尝试从该方法内部调用该属性,您将陷入无限循环。
标签: ruby-on-rails ruby ruby-on-rails-4