Ruby on rails 将输入值传递给控制器

Ruby on rails 将输入值传递给控制器,ruby-on-rails,Ruby On Rails,努力掌握这个Rails的东西 我有一个主题(像一个论坛),我试图将其与一个章节(一个类别)联系起来。我可以在新页面上列出可用的章节,但当我保存时,我无法将其正确保存 主题\u controller.rb def create @topic = Topic.new(topic_params) @topic.user = current_user @topic.chapter = Chapter.find(params[:chapter_id]) 在我的表格里 我将感谢任

努力掌握这个Rails的东西

我有一个主题(像一个论坛),我试图将其与一个章节(一个类别)联系起来。我可以在新页面上列出可用的章节,但当我保存时,我无法将其正确保存

主题\u controller.rb

def create
    @topic = Topic.new(topic_params)
    @topic.user = current_user
    @topic.chapter = Chapter.find(params[:chapter_id])
在我的表格里


我将感谢任何人的帮助!:)

如果你不介意的话,我会把我的评论转换成答案,不要让问题没有答案


查看服务器日志。我想,参数类似于
主题:{chapter_id:1}
。这意味着,您可以通过
params[:topic][:chapter_id]
访问所需的参数。但更好的办法是在允许的参数(topic_params)中添加
chapter_id
。在这种情况下,您可以稍微简化创建操作

# note - you can create a topic belonging to current_user in one line
def create
  @topic = current_user.topics.build(topic_params)
  if @topic.save
    redirect to topics_path
  else
    render :new
  end
end

def topic_params
  params.require(:topic).permit(:title, :text, :all_other_parameters, :chapter_id)
end
你需要在链接中使用章节的名称。假设它是
title
属性:

<%= link_to topic.chapter.title, topic.chapter %>


查看服务器日志。我想,参数类似于
主题:{chapter_id:1}
。这意味着,您可以通过
params[:topic][:chapter\u id]
访问所需参数。很好!这是为了拯救它。现在它吐出来像#。有没有关于如何得到这个名字的想法?我正在使用
谢谢!我不能很好地完成主题部分,但那是我现在的家庭作业。我真的很感谢你的支持@tommysvr不客气:)你可以发布一个关于主题参数的新问题,我会尽力帮助你