添加新收藏夹:使用current_user.id创建表单

时间:2016-06-10 04:44:13

标签: ruby-on-rails ruby

我正在尝试创建一个可以保存current_user.id的表单。我的控制器里有些东西很时髦。关于明显问题的任何想法?

查看(new.html.erb)

def create
@favorite = Favorite.new
@favorite.dish_comment = params[:dish_comment]
@favorite.user_id = curent_user.id
d = params[:dish_id]
r = params[:restaurant_id]

Controller(favorites_controller.rb)

@favorite.user_id = curent_user.id

问题代码:

Replace(CustomerName, 'ABC', 'XYZ')

2 个答案:

答案 0 :(得分:0)

我认为你应该在你的current_user前放一个@,以便在ERB和控制器中访问它。

另外,一旦你保存了current_user,你应该使用params [:user_id]来匹配erb(输入名称是user_id)。

请查看rails服务器输出,它会告诉您请求中提交的参数。

答案 1 :(得分:0)

谢谢@jackhaskeyboard。我拼错了“当前”错误。

我现在收到以下错误:Add Favorite Error Messages 1.“用户已被带走” - 用户应该能够发布无限的收藏,所以我不确定为什么会这样。

  1. “Dishing不能为空” - 此表单的目的是选择两个变量(dish& restaurant),搜索dishing联接表以查看是否存在该组合。如果没有,创建一个,如果是这样,抓住dishing_id,并用它来创建一个新的收藏条目(用户和餐厅/餐厅)
  2. 这是我的观看代码:

    <div class="row">
    <div class="col-md-12">
    <form action="/create_favorite" method="post">
      <!-- Hidden input for authenticity token to protect from forgery -->
      <input name="authenticity_token" type="hidden" value="<%= form_authenticity_token %>">
    
      <!-- Label and input for user_id -->
      <div class="form-group">
        <% current_user.id %>
        <input type="hidden" name="user_id" value="<%= current_user.id%>">
      </div>
    
      <!-- Label and input for dishing_id -->
      <div class="form-group">
        <label for="dishing_id" class="control-label">
          Dish
        </label>
        <%= select_tag(:dish_id, options_from_collection_for_select(Dish.all, 'id', 'dish_name')) %>
      </div>
    
      <!-- Label and input for restaurant_id -->
      <div class="form-group">
        <label for="restaurant_id" class="control-label">
          Restaurant
        </label>
        <%= select_tag(:restaurant_id, options_from_collection_for_select(Restaurant.all, 'id', 'name') ) %>
      </div>
    
    <button class="btn btn-success">
        Create Favorite
      </button>
      or
      <a href="/favorites">Cancel</a>
    </form>
    </div>
    </div>