You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails 4.2.1与Ruby 2.5:如何向新组织笔记控制器传参

没问题,我来帮你搞定组织ID传递的事儿!

解决方案

首先咱们得先调整路由结构,让OrganizationNote嵌套在Organization下,既符合RESTful规范,也能自然传递组织ID:

在config/routes.rb里修改路由:

resources :organizations do
  resources :organization_notes, only: [:new, :create]
end

接下来,修改你在Organization show视图里的link_to代码,把当前组织的ID传递进去:

link_to 'Add Note', new_organization_organization_note_path(@organization), class: "btn btn-primary btn-lg"

提示:可以运行rake routes命令确认嵌套路由生成的具体路径名称,确保和代码里的一致

然后,在OrganizationNotesController的new动作里,接收传递过来的organization_id,并初始化关联的笔记对象:

def new
  @organization = Organization.find(params[:organization_id])
  @organization_note = @organization.organization_notes.new
end

最后,在organization_notes/new.html.erb的表单里,加上隐藏字段保存组织ID,确保创建笔记时能正确关联到对应组织:

<%= form_for(@organization_note) do |f| %>
  <%= f.hidden_field :organization_id, value: @organization.id %>
  <!-- 这里放你的其他表单字段 -->
  <%= f.submit 'Save Note' %>
<% end %>

另外别忘了在控制器的强参数里允许organization_id:

def organization_note_params
  params.require(:organization_note).permit(:content, :organization_id) # 替换成你实际需要的字段
end

这样操作后,点击「Add Note」按钮就能带着当前组织ID跳转到新建笔记页面,创建的笔记也会自动关联到对应的组织啦!

内容的提问来源于stack exchange,提问作者EastsideDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:23:57