仅显示属于代码的名称

时间:2017-05-03 23:25:55

标签: ruby-on-rails ruby

因此,在我的应用程序中,访客在code / index.html页面中搜索他们的RSVP代码,然后单击将其带到rsvp页面的继续链接。我试图只显示属于RSVP特定代码的名称,但目前所有名称都显示出来。我已经将代码作为参数传递到索引页面上的链接中,但是当我到达rsvp页面时,它会显示在url中,其中一段时间​​看起来并不正确ex:/rsvp.1 所以我猜这是我出错的地方,但我无法弄清楚原因:

协会

Guest belongs_to :code
Code has_many :guest

代码/ index.html.erb (带有用户到rsvp页面并将params传递给rsvp页面的链接的页面)

<h2><%= link_to 'Continue', rsvp_path(code) %></h2>

code_controller

    def index
      @codes = Code.search(params[:search])
    end 
    def rsvp
      code_id = params[:code]
      @guests = Guest.where("code_id", "#{code_id}")

    end

代码/ rsvp.html.erb

<div class="row">
  <div class="box">
    <div class="col-lg-12">
       <form class="row form-inline">
         <% @guests.each do |guest| %>
            <%= guest.name %>
         <% end %>
         <div class="form-group">
          <p> Will you be attending the wedding of Kristen Albrecht and Chris Alford September 1, 2017? </p>
         <button aria-haspopup="true" class="btn btn-default dropdown-toggle" ngbdropdowntoggle="" type="button" aria-expanded="false">
          Yes</button>
         </div>
         <div class="form-group">
          <button type="submit" class="btn btn-primary">No</button>
         </div>
          </form>
    </div>
  </div>
</div>

路由

  resources :codes
  resources :guests
  get '/code' =>'codes#code'
  get '/rsvp' =>'codes#rsvp'

2 个答案:

答案 0 :(得分:0)

好吧我明白了:

我将索引页面上的链接更改为

 <%= link_to "Continue", {:controller => "codes", :action => "rsvp", :code_id => code.id }%>

然后我将控制器代码更改为

  def rsvp
    @guests = Guest.where(code_id: params[:code_id]) 
  end

答案 1 :(得分:0)

要确保get '/rsvp/:code' =>'codes#rsvp' 是网址中的参数,您必须进行以下更改:

的routes.rb

<h2><%= link_to 'Continue', rsvp_path(code: code) %></h2>

代码/ index.html.erb

params[:code]

这样response = requests.post(url = url, data = json.dumps(body), headers = headers, veryify=False) 将在code_controller中有一个值