【问题标题】:Rails passing params to new actionRails 将参数传递给新动作
【发布时间】:2016-03-14 23:42:52
【问题描述】:

我链接到一个在 URL 中提供参数的新操作。该参数在 create-action 中应该是可读的,以便我可以将其放入新创建的对象中。

具体: 我在书架的展示页面上。有一个 link_to 链接到 book 的新操作,其参数包含书架的 id。在创建 book 时,我想将 bookshelf 的 id 放入该书的外键 (bookshelf_id)。

我如何做到这一点? link_to 如下所示:link_to new_book_path(:bookshelf => bookshelf)。 我尝试使用 @book.bookshelf 阅读和传递参数 = Bookshelf.find(params[:bookshelf]) 在 create-action 但它是一个空字符串。

【问题讨论】:

    标签: ruby-on-rails action params


    【解决方案1】:

    发布关系。如果您在书架展示页面上,则可以访问该书架实例

    <%= link_to new_book_path(:bookshelf_id => params[:id]) %>
    

    当您点击该链接时,您的网址应该有 ?bookshelf_id=123(或其他)

    然后,要从新页面访问该参数,您可以在表单中执行此操作(假设它是传统的 rails 表单):

    <%= f.hidden_field :bookshelf_id, value: params['bookshelf_id'] %>
    

    如果您采用这种方法,则无需执行任何其他操作。像往常一样传递参数即可。

    如果您愿意,可以在控制器中访问此参数:

    bookshelf_id = params['bookshelf_id']
    

    您可以在此处设置它,然后将其添加到您正在创建的对象中。

    【讨论】:

      猜你喜欢
      • 2013-01-25
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 2011-09-19
      • 2012-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多