ive*_*rds 7 scope form-for ruby-on-rails-3
由于范围和rails 3中的form_for帮助器,我遇到了问题.路径 - 文件如下所示:
scope "(/:tab)" do
resources :article
end
Run Code Online (Sandbox Code Playgroud)
表单看起来像这样:
<%= form_for(@article) %>
<%= f.label :title %>
<%= f.text_field :title %>
etc.
<%end%>
Run Code Online (Sandbox Code Playgroud)
tab - 属性存储在params [:tab]中,作为一个字符串我的问题是,这会在表单中生成错误的url.我怎么能让这个工作?经过处理的url article_path(params [:tab],@ article)工作得很好
ive*_*rds 11
我想出的答案非常难看,但同时适用于更新和创建:
<%= form_for(@article, :url => (@article.new_record? ?
articles_path(params[:tab]) : article_path(params[:tab], @article) do |f| %>
Run Code Online (Sandbox Code Playgroud)
更新:更好的解决方案是将default_url_options方法覆盖为如下所示:
def default_url_options(options={})
{ :tab => params[:tab] }
end
Run Code Online (Sandbox Code Playgroud)
然后<%= form_for @article do | f | 可以使用%>,并且正确生成所有网址
Yan*_*nis 10
尝试:
<%= form_for [:tab, @article] do |f| %>
<%= f.label :title %>
<%= f.text_field :title %>
etc.
<%end%>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5474 次 |
| 最近记录: |