将分页,嵌套路由,ruby,rails(will paginate, nested routes, ruby, rails)
我试图将paginate链接到我的嵌套路由而不是常规的posts变量。 我知道我应该将一些参数传递给分页,但我不知道如何传递它们。
基本上有一个存储在
@posts
的数组,另一个param paginate可以访问的是category_id
。嵌套路线是
/category/1/posts
但是在下一个和之前打开将paginate返回一个类似这个posts?page=1&category_id=7
的网址posts?page=1&category_id=7
。<%= will_paginate @most_recent_posts "What do I do here?" %>
这是Yannis回答的结果:
在您的控制器中,您可以:
@posts = @category.posts.paginate
在你看来:
<%= will_paginate(@post) %>
这样做会出现以下URL
posts?page=2&post_category_id=athlete_management
routes.rb#有更多的路线,但这些是相关的路线
map.resources :posts map.resources :post_categories, :has_many => :posts
解
map.resources :post_categories do |post_category| post_category.resources :posts end map.resources :posts
必须在块之后声明资源
谢谢斯蒂芬!
I'm trying to get will paginate to link to my nested route instead of the regular posts variable. I know I'm supposed to pass some params to paginate but I don't know how to pass them.
Basically there is an array stored in
@posts
and the other param paginate has access to iscategory_id
.The nested route is
/category/1/posts
but hitting next and previous on will paginate returns a url like thisposts?page=1&category_id=7
.<%= will_paginate @most_recent_posts "What do I do here?" %>
This is the result of Yannis's answer:
In your controller you can do:
@posts = @category.posts.paginate
And in your view:
<%= will_paginate(@post) %>
Doing this comes up with the following URL
posts?page=2&post_category_id=athlete_management
routes.rb #there are more routes but these are the relevant ones
map.resources :posts map.resources :post_categories, :has_many => :posts
solution
map.resources :post_categories do |post_category| post_category.resources :posts end map.resources :posts
Had to declare the resource after the block
Thanks stephen!
原文:https://stackoverflow.com/questions/4005366
最满意答案
没有。
No.
相关问答
更多-
总之:你不能。 一个匹配总是连续的,即使它包含了作为零宽度断言的东西,如果你想要后面的一个匹配下一个字符,也无法匹配下一个字符。 In short: You can't. A match is always consecutive, even when it contains things as zero-width assertions there is no way around matching the next character if you want to get to the one afte ...
-
正则表达式只有负面的前瞻和外观。 他们的精神是:你只看,你不要往前走。 这是一个负面的预测: (?!nomatch) 这是一个负面的背后: (?您没有使用第一种方法匹配所有这些单词,因为该模式与输入字符串不匹配。 你需要通过用(?:...)?封闭right_word模式来使其成为可选的(?:...)? : import re x = 'beef tomato chicken trump Madonna' n = 5 right_word = '(?:\s+(\S+))?' regex_right = r'^\S*{}'.format(n*right_word) print(regex_right) m_right = re.search(regex ...
正则表达式捕获组(regex capture group)[2022-09-06]
你有一个先前的贪婪捕获(.*) ,你允许你的操作员捕获是可选的(结尾? ); 有了这个,贪婪捕获是引入操作员而不是让它落到匹配=的组中的贪婪捕获。 尝试将贪婪捕捉改为只有那里可以接受的东西。 从它的外观来看,它只能是字母数字值和空格(数字是一个猜测,所以如果不需要可以删除): \b(?:float\s+)?([a-zA-Z0-9]+)\s*(?:(\+|-|\*|\\)? =) You have a preceding greedy capture with the (.*) and you're all ...std::regex rx("^((?=.*[a-z]))?((?=.*[A-Z]))?((?=.*[0-9]))?((?=.*[!-/:-@[-`{-~]))?(\\S){8,20}$"); 并用mr[i].first == str.end() 。 演示 这就是说,回想一下这句话 : 有些人遇到问题时会想:“我知道,我会用正则表达式。” 现在他们有两个问题。 std::regex rx("^((?=.*[a-z]))?((?=.*[A-Z]))?((?=.*[0-9]))?((?=.*[!-/:-@[- ...捕获正则表达式中的重复组(capture a repeating group in regex)[2023-04-23]
看起来你正在使用std::regex_match 你可以使用std::regex_search或std::regex_iterator做你想要的(用正则表达式([^_]+) ) it seems like you are using std::regex_match you can use std::regex_search or std::regex_iterator to do what you want (with regex ([^_]+))像这样的东西可以为你工作: \b[Gg]et(?!\w*[Dd]etails)\w+s\b Something like this could work for you: \b[Gg]et(?!\w*[Dd]etails)\w+s\b当你需要匹配除了其他一些字符之外的一些字符时,你应该想到否定的字符类 。 要匹配任何字符,但#和? 使用[^#?] 。 要匹配零个或多个匹配项,请在其后添加* 。 使用 /([^#?]*) 请参阅正则表达式演示 Java演示 : String str = "/hello.there#test"; Pattern ptrn = Pattern.compile("/([^#?]*)"); Matcher matcher = ptrn.matcher(str); if (matcher.find()) { ...正则表达式捕获组混淆(Regex capture groups confusion)[2023-10-10]
你需要使用积极的先行断言 。 Matcher m = Pattern.compile("\\d(?=\Wstops?)|nonstop").matcher(s); while(m.find()) { System.out.println(m.group()); } \\d(?=\Wstops?)仅匹配所有数字,如果它后跟一个非单词字符后跟字符串stop或stops | 要么 nonstop匹配字符串nonstop You need to use positive lookahead assertion. ...相关文章
更多- Why Ruby
- Rails中的路由功能是如何对应的?
- Rails 风格指导
- Rails常用插件
- sencha touch routes(路由) 传递中文参数
- 启动script/console时必须在前面加ruby,否则不能启动?
- 如何通过Ruby 获取当前网页的地址?
- Rails设置环境变量
- ruby中的字面常量$/是啥呢?
- ruby 全局变量
最新问答
更多- 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
- 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
- OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
- 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
- codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
- 在计算机拍照在哪里进入
- 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
- No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
- 单页应用程序:页面重新加载(Single Page Application: page reload)
- 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
- System.StackOverflow错误(System.StackOverflow error)
- KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
- 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
- android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
- TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
- 企业安全培训的各项内容
- 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
- C#类名中允许哪些字符?(What characters are allowed in C# class name?)
- NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
- 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
- 将多个行和可变行移动到列(moving multiple and variable rows to columns)
- 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
- 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
- Angular $资源不会改变方法(Angular $resource doesn't change method)
- 在Angular 5中不是一个函数(is not a function in Angular 5)
- 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
- 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
- 常见的python rpc和cli接口(Common python rpc and cli interface)
- Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
- 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)