Rails允许:new,:show,但不允许:编辑

时间:2013-12-19 00:42:04

标签: ruby-on-rails

我正在建立一个琐事应用程序,每个用户可以完全回答一次每日琐事问题。我可以看到使用:new操作来回答问题,{​​{1}}操作可以显示用户的回答,但我希望网址相同。

因此,如果用户刚刚第一次到达,我希望相同的网址(http://example.com/daily_question)呈现:show,或者如果用户已经回答了每日问题,则需要:new 。最简单的方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用HTTP动词和操作来执行此操作 您的节目动作节目已找到或构建问题,即

def show
  @question = current_user.daily_question || current_user.build_daily_question
end

而不仅仅是在编辑操作中使用更新attirbutes 所以你有

GET /show
PUT /edit

答案 1 :(得分:0)

默认情况下,show和new操作不能提供相同的url,因为show期望“id”位于url中,而new action需要在url末尾添加“new”一词。 如果您需要相同的网址,请不要在展示或新操作上强制它。只需在控制器中创建自己的自定义方法,然后在路径中匹配它。