2012-08-05 31 views
-3

我还是很新的Rails,我正在研究一个基本的应用程序,并遇到了一个问题,我似乎无法绕过,对不起,如果这问题已经得到解答,但搜索没有给我任何结果。如何设置我的对象在轨道上的红宝石的初始值

基本上我创建了一个应用程序来编目所有的人的衣服,现在主页是他们已经记录的所有内容的索引页,每张图片链接到显示更多信息的显示页面。我想用AJAX将显示页面放在主索引页面的旁边。我正在研究另一个教程来解决这个问题,但遇到了问题。在我的索引页的初始加载中,我需要为该显示页面定义一个变量,以便可以使用局部变量来渲染它,但是由于用户没有选择,我无法使用find(params [:id])什么都没有。所以我的问题是如何将初始值设置为目录中的第一个项目或者没有任何内容出现,然后当有人点击链接时,侧边栏显示了这件衣服的更详细的描述。

感谢您的任何帮助。

+0

如果你可以发布一些相关的代码,你可能会得到更多的帮助。 – bkconrad 2012-08-05 23:38:11

回答

0

你可能会有一些运气与红宝石'PJAX'工作。 Here is a screen cast向你展示如何获得你想要的AJAX边栏。祝你好运

+0

是的,使用这个教程,我想出了我想做的事情。非常感谢链接。 – NIyer 2012-08-08 00:18:14

0

听起来你可以像正常一样打印容器元素,但是当页面生成时将其留空。或者,通过CSS隐藏它。然后,当您使用AJAX加载其内容时,请将其设置为可见或仅将其填充为正常。

或者,如果您确实想将其设置为目录中的第一个项目(或任何ActiveRecord),则可以使用.first(例如, Products.first,并使用该值填充其初始内容。

+0

我不认为它与CSS有关,比我在控制器中定义它更多。在控制器中它的@clothitem = Clothitem.find(params [:id]),我试着用if语句搞清楚它是如何工作的,这可能就是我接近它的方式。 – NIyer 2012-08-06 00:06:43

+0

CSS的使用只是一种解决方案,听起来像你对megas的答案感兴趣。 – bkconrad 2012-08-06 00:10:32

1
@object = params[:id] ? MyModel.find(params[:id]) : MyModel.first 

但我觉得应用程序的设计有一些问题。

+0

也许,我希望在侧边栏的初始页面加载时是空白的,然后当有人点击一篇文章时,该文章就会出现在侧边栏中。现在发生的事情是,侧边栏已经尝试在第一次加载时显示某些内容,并且由于用户没有选择任何内容,因此无法使用。我可能需要采取不同的方式 – NIyer 2012-08-06 00:08:50