ruby-on-rails – 使用belongs_to关联将隐藏字段放入资源表单中
发布时间:2020-12-16 22:58:30 所属栏目:百科 来源:网络整理
导读:我正在通过编写简单的TODO任务应用程序来学习Rails. 两种型号是: class List ActiveRecord::Base has_many :tasks,:dependent = :destroy # ...endclass Task ActiveRecord::Base belongs_to :list # ...end 任务在列表下作为嵌套资源进行路由.因此,当用户
我正在通过编写简单的TODO任务应用程序来学习Rails.
两种型号是: class List < ActiveRecord::Base has_many :tasks,:dependent => :destroy # ... end class Task < ActiveRecord::Base belongs_to :list # ... end 任务在列表下作为嵌套资源进行路由.因此,当用户创建新任务时,POST消息将发送到/ lists /:list_id / tasks.到目前为止,在Tasks#new view的形式中有 f.hidden_field :list_id,:value => params[:list_id] 但这是一个可怕的解决方案,因为任何人都可以改变隐藏领域的价值. 这里的约定是什么?我应该把类似的东西 @task.list_id = params[:list_id] 在任务#创建动作并摆脱隐藏的字段,或者也许 @task = List.find(params[:list_id]).tasks.new(params[:task]) if @task.save # ... end 或者甚至有更好的方式我不知道? 编辑: 解决方法
你是对的 – 那太可怕了.不需要隐藏的字段.像下面这样的东西.
在您的TasksController中: def new @list = List.find(params[:list_id]) @task = @list.tasks.build end def create @list = List.find(params[:list_id]) @task = @list.tasks.new(params[:task]) # etc end 在Task#new视图中: <% form_for [@list,@task] ... %> ... <% end %> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容