是否可以更改RESTful资源的默认操作?

时间:2009-10-28 07:22:53

标签: ruby-on-rails

在Ruby on Rails中,是否可以更改RESTful资源的默认操作,因此,例如,当有人进入/ books时,它会获取:new而不是列表(我不在乎这是否意味着无法再显示列表了吗?

5 个答案:

答案 0 :(得分:2)

不确定你为什么会这样做,但只需添加这个

map.connect "/books", :controller => "books", :action => "new", :conditions => { :method => :get}

之前的config / routes.rb
map.resources :books

它应该有用。

答案 1 :(得分:2)

我要指出的是,如果你指向/ books / new,你会让任何期待REST的人感到困惑。如果您不是一个人工作,或者如果您以后有其他人加入,或者您希望向外部公开API,则REST约定是/ books将您带到列表,/ books / new是在哪里创建新记录。

答案 2 :(得分:0)

是。您应该能够在控制器中替换索引方法......



def index
  @resource = Resource.new
  # have your index template with they proper form
end

答案 3 :(得分:0)

同样,你可以做到

def index
  show
end

答案 4 :(得分:0)

def index
  redirect_to new_book_path
end

我认为这是最简单的方法。