如何从请求数据读取信息到控制器

时间:2016-11-01 05:22:36

标签: ruby-on-rails ruby ruby-on-rails-4

我正在尝试将模型帖子添加到博客中。帖子有blog_id。我需要在发布后设置它。

= link_to 'New Post', new_post_path(blog_id: @blog.id)

这是创建新帖子的按钮。我在地址中看到:

  

http://localhost:3000/posts/new?blog_id=27

但我不知道如何将此blog_id发送到post_form。我应该使用隐藏的形式还是什么?或许我需要在控制器中写一些东西。耐我,我是铁杆新手。另外,我想知道,这是设置blog_id发布的正确方法吗?

UPD _post_form

= simple_form_for [@post] do |f|
  = f.error_notification

  .form-inputs
    = f.input :title
    = f.input :content

  .form-actions
    = f.button :submit

2 个答案:

答案 0 :(得分:1)

您应该使用帖子和博客之间的关系,在posts模型中将其声明为has_many或has_one关系,这样您就有机会访问该对象:

@blog = blog.posts.find(:id)

我建议您按照本教程的这一部分进行操作:https://www.railstutorial.org/book/user_microposts它确实帮助了我做项目

答案 1 :(得分:1)

只需添加hidden_field并访问params[:blog_id]

发送的new_post_path
= simple_form_for [@post] do |f|
  = f.error_notification

  .form-inputs
    = f.input :title
    = f.input :content
    = f.hidden_field :blog_id, value: params[:blog_id]

  .form-actions
    = f.button :submit