传递的参数未在Rails中读取

时间:2016-08-19 22:38:17

标签: ruby-on-rails ruby ruby-on-rails-5

我之前发布了这个问题:Passing parameters on button click in Rails

答案非常有效。但是,我传递的参数无法在erb中调用,即使是从@event_option_id方法传递的book_now也是如此。

它在我的服务器日志中显示为Parameters: {"event"=>"4", "event_option_id"=>"5"},但当我尝试使用<%= @event_option_id %>时,它会变回空白,当我刚刚将其作为to_i进行测试时,它显示{{1}而不是0

我的5有这种方法:

EventsController

我的链接传递的参数如下:

def book_now
  @event_option_id = params[:event_option_id]
end 

我正在尝试传递此<%= link_to "Book This Event Now!", book_now_path(:event => @event.id, :event_option_id => e.id), :id => "book-now-button", :class => "button" %> ,以便我可以从我的数据库中访问相应的值。

每个@event_option_id都有EventOptionpricedescription,这是唯一的,当我尝试以多种方式访问​​这些时,我得到{{}例如,1}}。

知道发生了什么事吗?

1 个答案:

答案 0 :(得分:1)

使用@event_option_id = params[:event_option_id],您只需将event_option_id参数值分配给实例变量。

您应该做的是使用event_option_id查找相应的EventOption对象,如下所示:

@event_option = EventOption.find(params[:event_option_id])

使用控制器方法中的那段代码,视图中的<%= @event_option.price %>将显示该EventOption对象的价格。