【问题标题】:Rails4: Adding Pages to a ControllerRails4:向控制器添加页面
【发布时间】:2013-08-21 03:47:22
【问题描述】:

我目前有一个商店的控制器:

http://localhost:3000/shops/testing

我想将aboutpolicy 页面添加到现有商店

http://localhost:3000/shops/testing/about
http://localhost:3000/shops/testing/policy

我是否必须生成单独的模型或视图或添加到控制器?

这个问题可能听起来很愚蠢,但我是 Rails 新手,无法克服这个问题。 如果有人可以启发我。

谢谢

【问题讨论】:

    标签: ruby-on-rails model-view-controller controller ruby-on-rails-4


    【解决方案1】:

    如果您的整个页面是一个商店,那么制作一个包含商店所有操作的单一商店控制器是没有意义的。相反,为商店“部件”创建控制器。通常,您将有一个单独的控制器用于静态页面,例如 aboutpolicy

    默认情况下,Rails 会在控制器中的代码执行后,在与控制器同名的文件夹下搜索与控制器的动作同名的文件并加载它。

    因此,如果您的控制器是 Shop,并且操作是策略,则只需在 views/shop folder 下添加一个 policy.html.erb 文件。最后,将其添加到 routes.rb 文件中:

    get 'shop/test/about', to: 'shop#about' 
    

    考虑一下getting started guide,它涵盖了所有这些。

    【讨论】:

    • 我有很多控制器,我的网站不仅仅是“商店”,如果它就是你的意思的话。如果您知道解决方案,您介意编辑您的答案,以便它实际上可以帮助我吗?谢谢
    • 是的,我就是这个意思。然后,除非商店真的只有几个动作,否则您可能仍然希望在几个控制器之间拆分商店功能。然后,即使您的页面包含商店的其他内容,并且这些政策和关于页面是特定于商店的,我仍然会将它们放在单独的控制器中,要么是特定的 shop-static-pages 控制器,要么是通用的-静态页面控制器,但是您想命名它们。
    • 我对 Rails 还很陌生,所以我不太明白你真正想说什么。所以你建议我生成一个,例如,General_static_pages 控制器,然后将这些页面添加到我的商店?这里的问题是,首先,我不知道如何将页面放入控制器然后分配它,以便 url 显示为我在上面的问题中描述的那样。
    • 哦,现在我明白了。我将您的问题理解为设计问题,例如,最好的方法是什么。默认情况下,Rails 会在与控制器同名的文件夹下搜索与控制器的 action 同名的文件,并在控制器中的代码执行后加载。因此,如果您的控制器是 Shop,并且操作是策略,则只需在 views/shop 文件夹下添加一个 policy.html.erb 文件即可。
    • 非常感谢。你介意用你给我的信息编辑你的答案,这样我就可以给你投票,其他人也可以看到吗?
    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多