Ruby on rails 带模型的轨道布线
如何在config/routes.rb文件中使用模型?我想完成的是以下几条路线Ruby on rails 带模型的轨道布线,ruby-on-rails,ruby-on-rails-3.1,controller,routes,Ruby On Rails,Ruby On Rails 3.1,Controller,Routes,如何在config/routes.rb文件中使用模型?我想完成的是以下几条路线 match '/:name', :topic => Post.where(:topic => name).first, :to => 'posts#search' 这可能吗?路由到控制器而不是模型。另外,我建议不要将主题选择放在这样的路线上。大多数正确的rails都是在正确的区域做正确的事情 在我看来,标准和基于REST的系统通常是相同的,例如,Posts控制器使用app/views/Posts中
match '/:name', :topic => Post.where(:topic => name).first, :to => 'posts#search'
这可能吗?路由到控制器而不是模型。另外,我建议不要将主题选择放在这样的路线上。大多数正确的rails都是在正确的区域做正确的事情 在我看来,标准和基于REST的系统通常是相同的,例如,Posts控制器使用app/views/Posts中的视图管理Post模型的记录,但它们是不同的东西 让路线
/:name
去posts#search是可以的,但是我觉得获取相关主题应该在posts控制器中完成。如果搜索在POST中,您可以在路由上使用嵌套资源,例如:
resources: :topics do
resources :posts, :member => :search
end
@Michael是对的-不要将数据库代码放在路由文件中。当然,这是可能的,但这确实违背了rails的惯例和原则 更好的办法是:
resources :posts do
collection { get :search }
end
您的搜索表单如下所示:
= form_tag(search_posts_path, :method => :get) do
= text_input_tag(:q)
和您的控制器:
def search
@posts = Post.where("body like ?", "%#{params[:q]}%")
end
<>请注意,您通常也会使用分页(WelePigalPipe或KMaLARI),并且可能想考虑像狮身人面像这样的全文搜索引擎。