레일 사이트에 "즐겨 찾기"버튼을 만들려고합니다. 두 가지 모델, 사용자 및 자료가 있습니다. 내가 수행 한 다음레일에 즐겨 찾기 관계를 만드는 방법 3.2
나는 스키마에 다음과 같습니다 새 테이블 "favmats"만든) :
class Favmat
belongs_to :user
belongs_to :material
end
class Materials
has_many :favmats
has_many :users, :through => :favmats
end
class Users
has_many :favmats
has_many :materials, :through => :favmats
end
: 나는 모델 사이의 관계를 설정
create_table "favmats", :force => true do |t|
t.integer "user_id"
t.integer "material_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
B)를
c) 자료 표시 페이지에서 데이터베이스에 새로운 관계를 작성하는 코드를 실행해야하는 양식을 작성했습니다. 이 문제가있는 것 같습니다. 따라서 코드이다
def create
@material = Material.find(params[:id])
respond_to do |format|
if @favmat.save
format.html { redirect_to @material }
format.js
else
format.html { render 'new' }
format.js
end
end
end
물론,이 작동하지 않는 경우 :
<%= form_for @favmat do |f| %>
<%= f.hidden_field :user_id, value: @user.id %>
<%= f.hidden_field :material_id, value: @material.id %>
<%= f.submit "Favourite" %>
<% end %>
d)는이 같은 보이는 favmats_controller시키는 방법을 만들었다. 내가해야 할 아이디어가 있습니까? 나의 가장 큰 혼란의 원천은 어디에서 새로운 favmats 객체를 생성해야하는지입니다.
그 중 어떤 부분이 작동하지 않습니까? 에러 메시지? 라우팅 문제가 있습니까? – davidfurber
[socialization] (https://github.com/Shreshtt/socialization) gem을 사용할 수 있습니다. 그것은 많은 기능을 제공합니다. Like 기능을 즐겨 찾기로 사용할 수 있습니다. – SoftwareGeek
hmmm 실제로 find 메서드를 사용하고 레코드를 저장하고 있습니다. .new 메서드를 사용하여 레코드를 초기화하고 params 레코드를 전달한 다음 .save 메서드 – bunty