我在使用rails render_to_string函数时遇到困难。我已经使用--api标志创建了一个应用程序,因此我认为这可能是个问题,因为我已经在“完整”的Rails应用程序中对其进行了测试,并且效果很好。
本质上我在打电话:
body_html = render_to_string(template: 'reservations/print')
Run Code Online (Sandbox Code Playgroud)
我也尝试过
body_html = render_to_string('reservations/print')
body_html = render_to_string(partial: 'reservations/print')
body_html = render_to_string(partial: 'reservations/print.html.erb')
Run Code Online (Sandbox Code Playgroud)
这应该返回该模板的html。文件名是print.html.erb,只有基本数据,即
<p> Hello world. </p>
Run Code Online (Sandbox Code Playgroud)
当我输出body_html时,它为空。
我引用了这个SO问题,在pdf格式中render_to_string的正确方法是什么?并且还将使用Wicked PDF生成pdf文件。
非常感谢
我有如下设置:
用户.rb
class User < ActiveRecord::Base
...
has_many :projects_users
has_many :projects, through: :projects_users
...
end
Run Code Online (Sandbox Code Playgroud)
项目_用户.rb
class ProjectsUser < ActiveRecord::Base
belongs_to :project
belongs_to :user
has_one :projects_users_role
end
Run Code Online (Sandbox Code Playgroud)
项目.rb
class Project < ActiveRecord::Base
has_many :projects_users
has_many :users, through: :projects_users
end
Run Code Online (Sandbox Code Playgroud)
用户嵌套在我的路由文件中的项目下。
由于某种原因,我似乎找不到为用户访问单个项目的好方法。理想情况下我想创建一个
has_one :project_user
Run Code Online (Sandbox Code Playgroud)
关联,然后是
has_one :project, through: :project_user
Run Code Online (Sandbox Code Playgroud)
并以某种方式将项目的 ID 传递给协会(我知道这是不可能的)。任何好的方法的想法。
然后我想调用类似的方法
@user = User.includes(:project (project_id parameter).find(:id)
Run Code Online (Sandbox Code Playgroud)
在我的用户控制器中。
非常感谢任何帮助。
谢谢
更新
我本质上在projects_users.rb中为每个项目每个用户附加了一个角色(上面更新并在下面添加)
项目_用户.rb
class ProjectsUser < ActiveRecord::Base
belongs_to :project
belongs_to :user
has_one :projects_users_role
end
Run Code Online (Sandbox Code Playgroud)
项目_用户_角色.rb
class ProjectsUsersRole < ActiveRecord::Base
belongs_to …Run Code Online (Sandbox Code Playgroud) 我想知道当字段只有一组可能的值时,存储一个值的整数或一串值是否更好(主观我知道).例如
Person Table
1.
Name Age Category
Joe 25 0
Jane 28 2
John 22 1
2.
Name Age Category
Joe 25 Student
Jane 28 Teacher
John 22 Staff
Run Code Online (Sandbox Code Playgroud)
哪种方法可取?方法1可能更快更好地进行查询,但是,在显示数据时会有更多的编程成本.
方法2可能更慢,更具表现力并且编程成本更低.
任何建议都会有用.
提前致谢