首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >复杂的网站结构- Rails

复杂的网站结构- Rails
EN

Stack Overflow用户
提问于 2014-10-07 10:32:03
回答 1查看 53关注 0票数 0

我认为自己是Rails的高级初学者(以及总体上的web设计)。我有这个项目,我很难思考如何实现最近的发展。

最初,该项目是一个简单的博客,供企业发布文章,以促进他们的公司。这是专为特定城镇的企业而设的,我没有遇到任何困难。现在,我们正在努力扩大范围,让这个网站迎合许多城镇。

我们希望有一个主页,您可以选择一个城镇。这就把你带到了这个城市的商业博客文章的列表中。您可以导航到一个目录,联系我们表单,配置文件页等。我的问题是,我希望每个城镇的行为像迷你网站,所以该目录只显示与城镇相关的业务和标题图像的变化,以反映您选择的城镇。

我最初解决这个问题的方法是建立一个城镇脚手架,并在城镇、用户和岗位之间建立联系。问题是以某种方式“存储”选定的城镇,这样我就可以在目录中只显示特定城镇的业务。

现在,在贴子模型中

代码语言:javascript
运行
复制
belongs_to :user

在用户模型中

代码语言:javascript
运行
复制
has_many :posts
has_many :towns

我在城镇控制器中有一个操作来处理只有行的目录:

代码语言:javascript
运行
复制
@users = User.order('trading_name ASC').where(:town => @town.id.to_s)

然后我想在目录视图中显示这些用户。

在我的城镇管理员中也有以下内容

代码语言:javascript
运行
复制
before_action :set_town, only: [:show, :edit, :update, :destroy, :directory]

老实说,我不能把头脑完全集中在所需要的联想上,即使这是正确的道路。就目前情况而言,当我试图访问目录视图时,我会得到以下错误

代码语言:javascript
运行
复制
Couldn't find Town without an ID

它在城镇控制器中引用了以下方法(我使用的是friendly_id gem)

代码语言:javascript
运行
复制
def set_town
  @town = Town.friendly.find(params[:id])
end

我是走在正确的道路上与这些联系(和遗漏的东西),还是有一个更好的方法,我可以采取。另外,我希望我已经解释清楚了。请问一下是否有什么东西让人困惑。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-07 10:42:32

我不知道你的具体要求是什么,但我想说:

用户可能不会“有很多”城镇。

用户确实“有很多”帖子。

一个城镇确实“有很多”职位。

一个帖子属于一个城镇,也是一个用户。

然后,在您的主页上,您将有一个带有城镇下拉列表的表单,它应该概括为一个类似choose_town之类的操作。

您的choose_town操作应该在Cookie中保存城镇的名称或id。你知道饼干吗?它们基本上允许您在请求之间为特定用户保存少量信息。它们存储在用户浏览器中,但在每次请求时都会从服务器上来回发送。请参阅overview.html#cookies

然后,调用每个请求的set_town方法将在cookie中查找正确的城镇。

编辑:@japed提到的会话以及cookie。会话由cookie标识--但是,存储在会话中的信息保存在服务器上,不会在浏览器和服务器之间来回发送。在这种情况下,两者都很可能没问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26233997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档