Ruby on Rails页面控件

时间:2016-12-10 11:03:01

标签: ruby-on-rails ruby web-deployment

对不起,我的英语不好。问题:我有带有列标题,描述等的模型页面。我可以创建,更改,销毁这些页面。我可以看到链接<?php while($result=mysqli_fetch_array($query)){ echo "<div class='col-lg-12'><div class='panel panel-default'>".$result['brand']." ".$result['modelyear']." ".$result['type']."<img src='".$result['link_image']." heigth:'50px' class='img-responsive'></div></div>";} ?> 的内容。我需要每个页面都有模板和路由,所以我可以看到链接上的内容,例如mydomain/pages/1。怎么做?请帮帮我。

2 个答案:

答案 0 :(得分:0)

实现自己的解决方案的一种方法是将其添加到您的路线文件中:

get '/mydomain/:slug, to: 'pages#show'

这是一个相当普遍的匹配器,所以将它添加到路线的底部,这样它就不会覆盖其他路线。

然后您的控制器显示操作将类似于:

def show
  @page = Page.find_by_slug(params[:slug])
end

这当然假设您的Pages表上有一个slug列。

答案 1 :(得分:0)

我假设“mydomain”是指您网站的根网址(例如myapp.example.com)

我建议你将问题分成两部分:

  1. 使用id以外的属性来标识网址中的项目
  2. 减少路由,以便不需要指定控制器。
  3. 对于1,请看一下:Rails routes with :name instead of :id url parameters注意,正如@spickermann建议friendly_id可能是一个很好的解决方案。

    对于2,您需要创建一个没有控制器名称的路由,然后在路由定义中指定控制器。 (见Rails Routing Guide):

    welcome.html.ep

    要使其正常工作,您需要将其放在之后(在routes.rb中较低),以便它不会与其他路径相关。我还建议adding a constraint to the route - 限制可以路由到该溃败的错误网址。