控制器方法
def status
@st = params[:st_type].to_i
@user_id = params[:user_id]
@post_id = params[:pt_id]
@a = Apply.find_by_user_id_and_post_id(@user_id, @post_id)
@a.update_attributes(status: @st)
flash[:success] = "Welcome to the Sample App!"
end
链接不传递post_id参数 - :
来自观点的链接
<%= link_to "Shortlist", status_applies_path(:user_id => @user.id, :pt_id => @post_id, :st_type => 1) %>
我正在尝试从url获取user_id和post_id并将其传递给我的控制器方法'def status'。它处理user_id和post_id以查找进一步更新属性的Apply id。 问题是我只能获取user_id而不能获取post_id。
答案 0 :(得分:1)
问题是,如果URL帮助器中的值为 nil ,则会省略它
$ rails c
app.jedis_path(listing: 1)
=> "/jedis?listing=1"
app.jedis_path(listing: nil)
=> "/jedis"
所以你的语法是正确的,但是如果param以 nil 的方式获得帮助URL方法,那么它本身不会显示在URL中
答案 1 :(得分:0)
使用where
和first
Apply.where(something_attr: @user_id, other_attr: @post_id).first
答案 2 :(得分:0)
它愚蠢的错字
您将params作为:post_id
传递并将其作为params[:pt_id]
将其更改为:
@post_id = params[:post_id]