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

ruby-on-rails – 用于嵌套路由的rails简单形式

发布时间:2020-12-17 02:33:27 所属栏目:百科 来源:网络整理
导读:我正在尝试使用双嵌套路由为@objects在Rails 3.2中构建一个simple_form_for,例如: /users/1/projects/2/objects 表格是: %= simple_form_for @object,:url = user_project_objects_path(@user,@project),:html = { :class = 'form-horizontal' } do |f| %
我正在尝试使用双嵌套路由为@objects在Rails 3.2中构建一个simple_form_for,例如:

/users/1/projects/2/objects

表格是:

<%= simple_form_for @object,:url => user_project_objects_path(@user,@project),:html => { :class => 'form-horizontal' } do |f| %>

在routes.rb中:

resources :users do
  resources :projects do
    resources :objects do
      collection { post :import }
    end
  end
end

我的问题是:对象控制器的新功能和创建动作是什么?

到目前为止 – 我收到路由错误 – 我有:

def create
  @user = current_user
  @project = Project.find_by_user_id(@user)
  @object = @project.objects.build(params[:object])
  if @object.save
    flash[:notice] = "Object was successfully created"
    redirect_to user_project_objects_path
  else
    render 'new'
  end
end

def new
  @user = current_user
  @project = Project.find_by_user_id(@user)
  @object = @project.objects.build
end

任何建议都非常感谢.

回应Greg W:

No route matches {:action=>"edit",:controller=>"objects",:user_id=>#<Object id: 8,source_lang_id: 1,source_content: "Kaffehaus",target_lang_id: 2,target_content: "cafe",domain_id: 2,owner_id: nil,created_at: "2013-01-04 06:36:55",updated_at: "2013-01-04 06:36:55",project_id: 2>}

owner_id(用户,即current_user)未更新 – 这可能是问题(?)

解决方法

在您可以使用的表单中

simple_form_for([@user,@project,object]) do

您可以使用该关系来获取数据

@project= current_user.projects

代替

@project = Project.find_by_user_id(@user)

(编辑:李大同)

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

    推荐文章
      热点阅读