передача параметра из другой модели на ruby - PullRequest
1 голос
/ 13 июня 2010

Я очень новичок в ruby ​​и мне нужна твоя помощь.

Я должен сохранить "Тему" и сделать так:

@topic = Topic.new(params[:topic])

Но я хотел бы передатьдругая информация к этой теме.У него есть поле "community_id", которое связывает его с сообществом.У зарегистрированного пользователя есть эта информация в его таблице.

Как я могу передать "community_id" от зарегистрированного пользователя "community_id" созданной "темы"?

thx за вашу помощь

Ответы [ 2 ]

3 голосов
/ 13 июня 2010
@topic = Topic.new(params[:topic])
@topic.community = @user.community
@topic.save

Это создаст новый объект Topic с параметрами хеша, которые вы передадите. И определит это сообщество как пользовательское.

1 голос
/ 13 июня 2010

Есть три метода: (Я догадался, как вы получаете community_id от пользователя, это не будет точно)

@topic = Topic.new(params[:topic])
@topic.community = @user.community

или

@topic = Topic.new(params[:topic].merge(:community_id => @user.community_id))

или

@topic = @user.community.topics.new(params[:topic])

(Ни один из этого кода не проверен)

Второй предполагает, что community_id является attr_accessible.

Третий, вероятно, более чистый способ сделать это, и это то, как я это делаю. Второе замечательно, если модель принадлежит более чем одной модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...