问题在我的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
答案 0 :(得分:0)
我认为你正在寻找一种方法来做这件事。它不需要:
class EntryController < ApplicationController
def create_half
@entry = Entry.new.range_days
#other stuff
end
end
你应该没事。
答案 1 :(得分:0)
将您的属性名称从range_days
更改为其他名称。否则,您将无法获得range_days
操作中的值。
self.range_days
方法中的 range_days
将再次调用range_days
方法而不是range_days
属性。因此,它将成为无限循环,您将获得 Stack Level Too Deep 异常。
然后您只需在控制器中执行以下操作:
def create_half
@entry = Entry.new
@entry.range_days
...
end