加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

form_for和scopes,rails 3

发布时间:2020-12-17 04:26:10 所属栏目:百科 来源:网络整理
导读:由于示波器和rails 3中的form_for帮助器,我遇到了问题. 路由 – 文件如下所示: scope "(/:tab)" do resources :articleend 表单看起来像这样: %= form_for(@article) % %= f.label :title % %= f.text_field :title % etc.%end% tab – 属性以字符串形式存
由于示波器和rails 3中的form_for帮助器,我遇到了问题.
路由 – 文件如下所示:
scope "(/:tab)" do
  resources :article
end

表单看起来像这样:

<%= form_for(@article) %>
   <%= f.label :title %>
   <%= f.text_field :title %>
    etc.
<%end%>

tab – 属性以字符串形式存储在params [:tab]中
我的问题是,这会在形式上产生错误的网址.我怎么能让这个工作?
经过处理的网址article_path(params [:tab],@ article)完美无缺

解决方法

我想出的答案非常难看,但同时适用于更新和创建:
<%= form_for(@article,:url => (@article.new_record? ? 
    articles_path(params[:tab]) : article_path(params[:tab],@article) do |f| %>

更新:
更好的解决方案是将default_url_options方法覆盖为以下内容:

def default_url_options(options={})
  { :tab => params[:tab] }
end

然后<%= form_for @article do | f | %GT;可以使用,并正确生成所有网址

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读